nginx
nginx for Windows
unzip nginx-1.21.4.zip cd nginx-1.21.4 start nginx
nginx -s stop fast shutdown nginx -s quit graceful shutdown nginx -s reload changing configuration, starting new worker processes with a new configuration, graceful shutdown of old worker processes nginx -s reopen re-opening log files
可以在conf目录中新增目录和配置文件,比如 item/item.conf
然后在conf/nginx.conf中添加include
include item/item.conf
Nginx服务Rewrite和Proxy_Pass
rewrite
语法: rewrite regex replacement [flag]
regex,用于匹配URI的正则表达式,使用括号()标记要截取的内容
replacement,匹配成功后用户替换URI中被截取内容的字符串,默认情况下,如果该字符串是有"http://"或者"https://"开头的,则不会继续向下对URI进行其他处理,而直接将重写后的URI返回给客户端
flag,用来设置rewrite对URI的处理行为,可以是下面的标志:
- last 终止继续在本location块中处理接收到的URI
- break 将此处重写的URI作为一个新的URI,在本块中继续处理
- redirect 将重写后的URI返回给客户端,状态码为302
- permanent 将重写后的URI返回给客户端,状态码为301
Nginx 修改访问路径
安装Nginx
http://nginx.org/en/linux_packages.html#RHEL-CentOS
配置Nginx
nginx.conf 文件可能在以下目录:/usr/local/nginx/conf
, /etc/nginx
, or /usr/local/etc/nginx
配置域名代理,可以在conf.d目录中添加
分别配置
# saas.conf server { listen 80; server_name saas-export-manager.xxx.net; location / { proxy_pass http://127.0.0.1:8080; } } # saas-manager.conf server { listen 80; server_name saas-export.xxx.net; location / { proxy_pass http://127.0.0.1:8081; } }
配置反向代理
server{ listen 8001; server_name 10.202.203.29; location / { proxy_pass http://10.200.80.21; } } server{ listen 8002; server_name localhost; location / {proxy_pass http://10.200.151.28;} }
访问http://10.202.203.29:8001 打开10.200.80.21
访问http://10.202.203.29:8002 打开10.200.151.28
还可以配置有端口的
server { listen 80; location / { proxy_pass http://localhost:5000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection keep-alive; proxy_set_header Host $http_host; proxy_cache_bypass $http_upgrade; } }
这样的话80端口的访问都会转发到5000端口
负载均衡
server{ listen 8001; server_name 10.202.203.29; location / { proxy_pass http://backend; } } upstream backend { server 10.200.151.28; server 10.200.80.21; }
根据不同的路径转发到不同的端口 这里需要注意关闭selinux
1、临时关闭selinux
setenforce 0 ##设置SELinux 成为permissive模式
setenforce 1 ##设置SELinux 成为enforcing模式
2、永久关闭selinux,
修改/etc/selinux/config 文件
将SELINUX=enforcing改为SELINUX=disabled
重启机器即可
server { listen 8090; server_name 192.168.85.143; location /app1/ { proxy_pass http://127.0.0.1:8001/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } location /app2/ { proxy_pass http://127.0.0.1:8002/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }
location / {
# 这个配置放到最后
} }