中间件-Nginx

nginx · 浏览次数 : 0

小编点评

本文主要介绍了在Linux环境下使用Nginx进行反向代理和部署前端代码的方法。首先,通过修改hosts文件和Nginx配置文件,将指定域名代理到指定服务。接着,详细说明了在Linux环境下配置和启动Nginx的方法,以及如何查看代理日志。最后,在Windows环境下,介绍了如何部署前端代码。 1. **修改hosts文件**:在Windows系统的`C:\Windows\System32\drivers\etc\hosts`文件中,添加一条记录将指定域名解析到本地IP地址。 2. **修改Nginx配置文件**:在Nginx的配置文件中,修改上游服务器配置,并在server块中添加代理设置。保存更改后,重新加载Nginx配置以使更改生效。 3. **Linux环境下Nginx配置和生效**:在Linux环境下,查看Nginx配置文件,修改自定义的配置文件,然后重启Nginx服务。如果启动失败,可以使用`taskkill`命令杀死进程。 4. **Windows环境下部署前端代码**:在Windows系统中,将Nginx可执行文件放在一个文件夹下,然后在命令提示符中启动Nginx。如果需要停止Nginx,可以使用`taskkill`命令,或者通过任务管理器结束Nginx进程。 5. **访问地址**:在浏览器中访问http://localhost:9100/xxx/index,其中9100是Nginx默认的端口,可以根据实际情况修改。

正文

一、nginx反向代理
跳转:
将某个指定的域名代理到指定的服务
http://xxx.com 转 http://localhost:8383
 
1.修改hosts文件
C:\Windows\System32\drivers\etc
hosts文件 最后一行加上 127.0.0.1 xxx.com
这样就将xxx.com直接解析到127.0.0.1
 
2.修改nginx.conf
需下载安装nginx,windows下安装
设置负载均衡,下面跳转路径指向这里:
upstream server-lb {
server 127.0.0.1:8383;
#server 127.0.0.1:8181;
}
server {
listen 80;
server_name 127.0.0.1;
location / {
#proxy_pass http://127.0.0.1:8383;
proxy_pass http://server-lb;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
index index.html index.htm;
}
}
---》监听本地127.0.0.1:80的请求,代理到127.0.0.1:8383服务
 
nginx命令:
start nginx 启动
nginx -s stop 停止
修改配置文件后:
nginx -s reload
 
3.原理
我们将xxx.com解析到了127.0.0.1,所以当我们访问xxx.com的时候,相当于访问了127.0.0.1:80,
此时被nginx服务器处理,请求被代理到127.0.0.1:8383
  
二、linux环境,nginx配置和生效
1.查看配置
/nginx/conf/conf.d/ 下
cat nginx.conf
 
2.修改完配置,重启nginx,不需要重启服务
./nginx -s reload
这里是linux系统的命令,和win系统不一样
 
3.查看代理日志
/nginx/logs/ 下
 
三、windowns环境下,用nginx部署前端代码
1.nginx.exe在的文件夹下cmd
 
2.打开启动nginx
start nginx.exe 如果要关闭,则直接:nginx.exe -s stop
nginx.exe 会一直开启着,如果要关闭,则需要杀死进程:taskkill xxxx,但是如果启动失败则可以看到报错信息
 
3.关闭nginx
nginx.exe -s stop
taskkill /fi "imagename eq nginx.EXE" /f
 
4. 访问地址:http://localhost:9100/xxx/index
 
补充:
(1)读取/conf/nginx.conf配置文件,因为该配置文件中include xxx..conf 即另外自定义的配置文件,所以会一起读取自定义的xxx..conf中的配置

 

(2)自定义的xxx.conf配置文件
配置端口号和访问内容

 

(3)启动报错:
a.端口号被占用

排查问题:
查询所有被占用的端口号:netstat -ano
查询被占用的8500端口号:netstat -ano | findstr “8500”

 打开任务管理器:

 

b.乱码
配置文件中含有中文,这时去修改配置文件后,可能会乱码

解决:

 

与中间件-Nginx相似的内容:

中间件-Nginx

一、nginx反向代理 输入 http://xxx.com/plat/login 跳转: http://localhost:8383/plat/login 将某个指定的域名代理到指定的服务 http://xxx.com 转 http://localhost:8383 1.修改hosts文件 C:\W

[转帖]高性能 -Nginx 多进程高并发、低时延、高可靠机制在百万级缓存 (redis、memcache) 代理中间件中的应用

https://xie.infoq.cn/article/2ee961483c66a146709e7e861 关于作者 前滴滴出行技术专家,现任 OPPO 文档数据库 mongodb 负责人,负责 oppo 千万级峰值 TPS/十万亿级数据量文档数据库 mongodb 内核研发及运维工作,一直专注于

[转帖]Nginx动静分离;资源分离;rewrite重写、跳转、伪静态、规则、日志

https://www.cnblogs.com/caodan01/p/14745562.html 一、动静分离 动静分离,通过中间件将动静请求和静态请求进行分离; 通过中间件将动态请求和静态请求分离,可以减少不必要的请求消耗,同时能减少请求的延时。 通过中间件将动态请求和静态请求分离,逻辑图如下:

[转帖]Nginx动静分离详解以及配置

https://developer.aliyun.com/article/885602?spm=a2c6h.24874632.expert-profile.314.7c46cfe9h5DxWK 简介: 1.Nginx动静分离概念 动静分离,通过中间件将动态请求和静态请求进行分离,分离资源,减少不必要

[转帖]linux 内核协议栈 TCP time_wait 原理、配置、副作用

https://my.oschina.net/u/4087916/blog/3051356 0. 手把手教你做中间件、高性能服务器、分布式存储技术交流群 手把手教你做中间件、高性能服务器、分布式存储等 (redis、memcache、nginx、大容量 redis pika、rocksdb、mong

[转帖]k8s中nginx工作线程的问题

https://www.cnblogs.com/lizexiong/p/15198863.html 本次环境背景信息为,需要在k8s里面跑一些前端界面,所以在pod容器中还是使用到了nginx,但是发现,如果nginx worker_processes参数为auto,pod容器会读取node节点的c

Nginx 简介、安装与配置文件详解

〇、前言 在日常工作中,Nginx 的重要性当然不言而喻。 经常用,但并不意味着精通,还会有很多不清楚的方式和技巧,那么本文就简单汇总下,帮助自己理解。 一、Nginx 简介 1.1 关于 Nginx Nginx(发音为“Engine X”)是一款轻量级和高性能的 Web 服务器、反向代理服务器、电

在 NGINX 中根据用户真实 IP 进行限制

需求 需要根据用户的真实 IP 进行限制, 但是 NGINX 前边还有个 F5, 导致 deny 指令不生效. 阻止用户的真实 IP 不是 192.168.14.* 和 192.168.15.* 的访问请求. 实现 最简单的实现如下: :notebook: 前置条件: 需要 nginx 前边的 lo

nginx中一个请求匹配到多个location时的优先级问题,马失前蹄了

背景 为什么讲这么小的一个问题呢?因为今天在进行系统上线的时候遇到了这个问题。 这次的上线动作还是比较大的,由于组织架构拆分,某个接入层服务需要在两个部门各自独立部署,以避免频繁的跨部门沟通,提升该接入层服务的变更效率。 该接入层服务之前是使用cookie + 内存session机制的,这次要独立部

nginx中的proxy_pass配置

Nginx 是最常用的反向代理工具之一,一个指令 proxy_pass搞定反向代理,对于接口代理、负载均衡很是实用,但 proxy_pass指令后面的参数很有讲究,通常一个/都可能引发一个血案。 通常nginx配置proxy_pass指令时,如果proxy_pass后面的url加/,表示绝对根路径;