1. nginx代理简单模型
在nginx.conf文件中:
1 | http { |
参考文章:window 下实现nginx 反向代理
2. nginx前后端一次代理
2.1 nginx后端代理
后端代理,只需要匹配到关键词,然后代理到指定路径上即可,比如配置如下:
1 | listen 443; |
上面的配置意思为:监听域名sf.aiidc.com.cn的443端口的/api/wszz/路径,即监听http://sf.aiidc.com.cn:443/api/wszz/ 请求,然后将请求代理到http://127.0.0.1:8083/
即本机(127.0.0.1 IP表示本机)的8083端口服务上。即http://sf.aiidc.com.cn:443/api/wszz/file-note/getFileNote(浏览器发起请求) == http://127.0.0.1:8083/file-note/getFileNote(服务器处理请求)
2.2 nginx前端代理
前端代理,既要匹配到关键词,还要部署到相应的目录里面才行,比如:
1 | listen 443; |
上面的配置意思为:监听域名http://sf.aiidc.com.cn的443端口的/api/wainao/路径, 即监听http://sf.aiidc.com.cn:443/api/wainao/index.html 请求,然后将请求代理到/opt/xa/pcWeb这个目录下面的index.html文件。
而前端代理根本不需要ssl_xxxx这些Https配置,同时也不需要location,因为后端已经有了代理,而前端的请求会自动被后端的代理监听并处理,所以前端不需要指定location等配置。
3. nginx前后端两次代理
场景:153服务器无法通过外网连接,只有局域网内的服务器(比如231)可以连通,那么项目部署就需要通过nginx代理过去。
实现原理:将项目前后端在153服务器上部署好,并启动成功。然后通过用户请求231服务器,231服务器将请求代理到153上。
153服务器的nginx配置:
1 | listen 8600; |
231服务器上的nginx配置:
1 | server { |
总结
①只有前端代理才需要考虑目录问题,后端代理不需要考虑目录,即部署的位置问题;
②在代理的时候,listen监听的端口需要开放并没有被其他程序使用,否则此代理文件不会生效。