nginx代理到本地服务器

我们今天做一个将nginx代理到本地服务器案例,首先我们准备一个本地dist包,如图:

然后我电脑已经按照好了nginx/1.17.9版本

看这两个目录,第一个是我们nginx访问的根目录,第二个是我们nginx安装位置,我们的配置nginx.config就在这里找

Docroot is: /usr/local/var/www

nginx will load all files in /usr/local/etc/nginx/servers/.

接下来,我们修改host文件,增加

127.0.0.1

接下来,我们进入nginx,修改nginx.config配置文件

访问localhost:8080就会看到刚才dist包文件

再增加配置文件server

访问:8888/lb/comment/getDetail?id=1,就会转发到本地服务localhost:9151/

这里有一个小说明就是proxy_pass配置说明,proxy_pass转发的路径后是否带 “/”,是影响你正常跳转的一个方面。例如

我们先看注释调例子2:

访问:8888/c/lb/comment/getDetail?id=1

结果正常

现在注释1,打开注释2;

访问:8888/c/lb/comment/getDetail?id=1

结果已经找不到资源了

总结,我们发现:

针对例子1,如果访问url = :8888/c/lb/comment/getDetail?id=1,则被nginx代理后,请求路径会变为 http://proxy_pass/lb/comment/getDetail?id=1,直接访问server的根资源.针对例子2,如果访问url = :8888/c/lb/comment/getDetail?id=1,则被nginx代理后,请求路径会便问http://proxy_pass/c/lb/comment/getDetail?id=1,将c/ 作为根路径,请求c/路径下的资源