- 续接上篇初识Nginx,本篇分享一下Nginx常用功能点之一的反向代理的应用。应用场景为:管理服务器上的陆陆续续发布的各类web应用程序,做了个简单的web应用程序展示面板,参见下图:
- 本篇文章使用Nginx版本为1.11.7,说一下Nginx实际中常用的几条指令
D:\pub\nginx-1.11.7>tasklist /fi "imagename eq nginx.exe" 查看任务管理器内nginx.exe的运行信息
"nginx -s stop" quick exit
"nginx -s quit" graceful quit
"nginx -s reload" changing configuration, starting a new worker, quitting an
old worker gracefully
"nginx -s reopen" reopening log files
- 我的这个演练场景是这样的,”web应用程序展示面板”是通过Nginx反向代理加载出来的,”web应用程序展示面板”里的每个子系统也是通过Nginx反向代理加载出来的,Nginx端口为9440,大家可以直接通过这个link下载我本地配置好的Nginx配置文件下载。重点关注的的几点配置如下:
#nginx进程数,建议设置为等于CPU总核心数。
worker_processes 2;
events {
#单个进程最大连接数(最大连接数=连接数*进程数)
worker_connections 24;
}
server {
#监听端口
listen 9440;
#域名可以有多个,用空格隔开
server_name localhost 127.0.0.1;
#charset koi8-r;
#access_log logs/host.access.log main;
#对 "/" 启用反向代理
location /9441/ {
proxy_pass http://localhost:9441/;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
#后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /8096/ {
proxy_pass http://localhost:8096/;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
#后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /8077/ {
proxy_pass http://localhost:8077/;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
#后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
运行效果参见下图(大家重点观察浏览器地址栏里的信息):
- 附件:Nginx反向代理的四类配置方法:
四种分别用http://127.0.0.1/SubProjectDir/default.html 进行访问。
第一种:
location /SubProjectDir/ {
proxy_pass http://127.0.0.1:81/;
}
会被代理到http://127.0.0.1:81/default.html 这个url
第二咱(相对于第一种,最后少一个 /)
location /SubProjectDir/ {
proxy_pass http://127.0.0.1:81;
}
会被代理到http://127.0.0.1:81/SubProjectDir/default.html 这个url
第三种:
location /SubProjectDir/ {
proxy_pass http://127.0.0.1:81/ftlynx/;
}
会被代理到http://127.0.0.1:81/ftlynx/default.html 这个url。
第四种情况(相对于第三种,最后少一个 / ):
location /SubProjectDir/ {
proxy_pass http://127.0.0.1:81/ftlynx;
}
会被代理到http://127.0.0.1:81/ftlynxdefault.html 这个url