一、反向代理之 /
的玄学
-
代理路径后面加上
/
http://www.rambo123.com/demo 访问 http://www.rambo123.com location /demo/ { # 注意后面加上反斜杠 proxy_pass http://www.rambo123.com/; } http://www.rambo123.com/demo/user 代理到 http://www.rambo123.com/user
-
代理路径后面不加
/
http://www.rambo123.com/demo 访问 http://www.rambo123.com/demo location /demo/ { # 注意后面加上反斜杠 proxy_pass http://www.rambo123.com; } http://www.rambo123.com/demo/user 代理到 http://www.rambo123.com/demo/user
二、反向代理之 “静态文件” 的处理
-
在一般没有固定上下文路径的服务中,如果采用
Nginx
做反向代理,很容易出现 “静态资源” 访问 “404” 的问题 -
解决 “静态资源” 访问 “404” 的问题一般可以考虑四个切面去处理
-
切入点一:如果应用服务是自己开发的,可以考虑配置统一上下文路径
-
切入点二:如果应用服务是第三方提供,我们可以考虑是否有配置文件指定上下文路径,比如
Jenkins
的JENKINS_ARGS="--prefix=/jenkins"
-
切入点三:采用
Nginx
对静态资源再做进一步的代理# http://www.rambo123.com/demo/static/index.js // 404 # http://www.rambo123.com/demo/static/index.css // 404 location ~ /demo/.*\.(js|css)$ { proxy_pass http:www.rambo123.com; rewrite ^/demo/static/(.*)$ /static/$1 last; } # http://www.rambo123.com/demo/static/index.js => http:/www.rambo123.com/static/index.js # http://www.rambo123.com/demo/static/index.css => http://www.rambo123.com/static/index.css
-
切入点四:采用
Nginx
对所有没有上下文路径匹配的静态资源都统一代理到指定目录去寻找(弊端就是,一个Nginx
服务只能包含一个服务这样操作)# Knife4j 前端文件(通过Nginx代理的静态文件后缀,都去这里去找资源) location ~*^.+\.(icon|gif|jpg|jpeg|png|html|css|js|txt|xml|swf|wav)$ { root /data/java/kadmin/front; }
-