第一次写博客,希望大家多多指教。
需求:
根据请求的url的上下文部分,区分请求做路由。从一个服务器转发到另一个服务器
准备步骤:
1、ps aux | grep nginx
查找nginx的路径
2、/sbin/nginx -t
nginx会去测试配置文件的语法,并告诉我们配置文件是否正确,同时也告诉了配置文件的路径
解决方法
第一种 : location
location /test/test1/ { proxy_pass http://需要转发的服务器ip/$uri?$query_string; proxy_set_header X-Real-IP $remote_addr; } location /test2/ { proxy_pass http://需要转发的服务器ip/$uri?$query_string; proxy_set_header X-Real-IP $remote_addr; }
第二种 : upstream
upstream test_server{ server 需要重定向的服务器ip; } location /coremail/fx_xphone/ { proxy_pass http://test_server; } location /fxiaoke/ { proxy_pass http://test_server; }
虽然这两种方式都可以达到最后的效果,但是建议选择第二种。
区别:
1、第一种的写法虽然达到了最后的要求,但是转发的路径会显示给用户,对用户不友好,还会引起无法预知的错误。
2、第二种抓包展示,用户不会看到转发的路径
查了一下相关资料,一般需要转发到另外的服务器上的,一般都是采用upstream的方式。