Nginx配置proxy_pass

nginx配置proxy_pass,需要注意转发的路径配置

  1. 1location /test/ {
  2. proxy_pass http://t6:8300;
  3. }
  4. 2location /test/ {
  5. proxy_pass http://t6:8300/;
  6. }

上面两种配置,区别只在于proxy_pass转发的路径后是否带 “/”

针对情况1

  1. 如果访问url = http://server/test/test.jsp,则被nginx代理后;
  2. 请求路径会便问http://proxy_pass/test/test.jsp
  3. 将test/ 作为根路径,请求test/路径下的资源;

针对情况2

  1. 如果访问url = http://server/test/test.jsp,则被nginx代理后;
  2. 请求路径会变为 http://proxy_pass/test.jsp
  3. 直接访问server的根资源;

典型实例:

同一个域名下,根据根路径的不同,访问不同应用及资源
例如:

A 应用和 B应用共同使用访问域名 http://server

应用 域名 配置 效果
http://server/a http://server 情况2 导致访问http://server/a/test.jsp时,代理到http://proxy_pass/test.jsp
导致无法访问到正确的资源,页面中如果有对根资源的访问,
也都会以http://server 做为根路径访问资源,导致资源失效
http://server/b http://server 情况1 保证代理后正确有效




原文地址:https://www.cnblogs.com/snifferhu/p/6126292.html