由于开始不熟没搞懂转发配置的关系花了不少时间补充知识总结如下1、请求去哪了location /admin { ... }这表示只要浏览器访问的网址路径是以 /admin开头的比如 www.xxx.com/admin/login就会进入这个大括号里的规则。proxy_pass http://100.x.x.x:90x;这是最关键的一句。意思是把上面匹配到的请求转发到 IP 为 100.x.x.x、端口为 90x的后端服务器上。2、什么时候会拼接路径proxy_pass 后面没有写 URI 路径参照上面的截图proxy_pass http://100.x.x.x:90;就是原路转发比如前端进来的全路径是 /admin/user/listNginx 会原封不动发给后端的 http://100.x.x.x:90/admin/user/list。收到什么就是什么。proxy_pass 后面写了具体 URI 路径proxy_pass http://100.x.x.x:90/admin/; 后面的斜杠很重要路径会被替换截断比如用户访问 /admin/userNginx 发现你配置了 /new_path/它会把匹配到的 /admin丢掉然后把剩下的 /user拼接到后面最终发给后端的是 http://100.x.x.x:90/new_path/user。再对比一下proxy_pass http://ip:90/new_path;http://ip:90/new_pathuserproxy_pass http://ip:90/new_path/;http://ip:90/new_path/userproxy_pass http://ip:90http://ip:90/admin/user3、proxy_set_header是干嘛的Host $host告诉后端用户原本访问的是哪个域名。X-Real-IP $remote_addr告诉后端用户的真实 IP 地址是多少否则后端看到的 IP 会是 Nginx 服务器的 IP。X-Forwarded-For ...这是一个链式记录如果经过了多层代理它会把所有经过的 IP 都记录下来方便后端追踪来源。
Nginx反向代理404?彻底搞懂 proxy_pass带斜杠与不带斜杠的路径拼接规则
由于开始不熟没搞懂转发配置的关系花了不少时间补充知识总结如下1、请求去哪了location /admin { ... }这表示只要浏览器访问的网址路径是以 /admin开头的比如 www.xxx.com/admin/login就会进入这个大括号里的规则。proxy_pass http://100.x.x.x:90x;这是最关键的一句。意思是把上面匹配到的请求转发到 IP 为 100.x.x.x、端口为 90x的后端服务器上。2、什么时候会拼接路径proxy_pass 后面没有写 URI 路径参照上面的截图proxy_pass http://100.x.x.x:90;就是原路转发比如前端进来的全路径是 /admin/user/listNginx 会原封不动发给后端的 http://100.x.x.x:90/admin/user/list。收到什么就是什么。proxy_pass 后面写了具体 URI 路径proxy_pass http://100.x.x.x:90/admin/; 后面的斜杠很重要路径会被替换截断比如用户访问 /admin/userNginx 发现你配置了 /new_path/它会把匹配到的 /admin丢掉然后把剩下的 /user拼接到后面最终发给后端的是 http://100.x.x.x:90/new_path/user。再对比一下proxy_pass http://ip:90/new_path;http://ip:90/new_pathuserproxy_pass http://ip:90/new_path/;http://ip:90/new_path/userproxy_pass http://ip:90http://ip:90/admin/user3、proxy_set_header是干嘛的Host $host告诉后端用户原本访问的是哪个域名。X-Real-IP $remote_addr告诉后端用户的真实 IP 地址是多少否则后端看到的 IP 会是 Nginx 服务器的 IP。X-Forwarded-For ...这是一个链式记录如果经过了多层代理它会把所有经过的 IP 都记录下来方便后端追踪来源。