在阿里云(Linux)Centos7上配置Nginx部署,多个Node项目同一域名按不同的目录访问

在这里之前已经完成了Nginx的安装,如果你还没有安装要先去安装一下,可以参考我另一篇在阿里云(Linux)Centos7上安装Nginx1.17步骤过程。
点击打开:https://blog.csdn.net/weixin_44679078/article/details/105731607

好的,进入正题,配置Nginx的映射,我希望是几个Node项目都可以通过输入IP(域名)+项目名称的形式就可以访问得到。也就是看起来是 几个Node项目都是在80端口,有点像Tomcat那种可以运行多个项目用项目名来区分。实际上,在这里是几个Node项目各自在不同的端口,而通过Nginx将不同的目录分发给不同的项目来达到这种效果。

配置过程
1,进入到nginx目录的conf里面

cd /software/nginx/nginx-1.17.10/conf/

2,编辑nginx.conf配置文件

vi nginx.conf

然后按 i 进入编辑模式,在下面截图的位置输入要配置的项目。
在这里插入图片描述

上面框着的代码内容:

       location /tetris/ {
            proxy_pass    http://localhost:3000/;
            proxy_set_header  Host       $host;
            proxy_set_header  X-Real-IP    $remote_addr;
            proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
       }

输入完之后按 shift+: ,然后按wq,保存并退出。

这里大坑啊,我是部署项目,也是第一次用Nginx。配置信息又不会,都是靠搜索。
第一个坑,在这里配置的时候,你项目的HTML页面最好使用相对路径,比如引入css的路径什么的使用相对路径。JS文件里面的使用代码跳转也要使用相对路径。用绝对路径可能会404。
第二个坑,上面的配置信息中location 写项目名最后面的 / 不要省略,不然匹配的时候就会多出一个 /
还有,proxy_pass 端口最后的斜杠 / 也不能省略,不然每次的请求都会带上 location 的值
上面是已经改好了的,原本不是这样写,我看其他教程大多数都是贴个配置信息没有说清楚。直到翻中下面这篇博客才明白https://blog.csdn.net/qq_29298577/article/details/85050862
其他匹配问题也可以去看一下这一篇
https://blog.csdn.net/jw2015_8/article/details/84926464

3,重启Nginx
重启方法:进入nginx可执行目录sbin下,输入命令./nginx -s reload 即可。
或者之前像我一样配置了开机自启的nginx.service服务文件,使用下面这句命令就可以重启Nginx

systemctl restart nginx.service

4,测试访问
上面我配置了两个项目:tetris和tetris2
接下来通过 http://ip地址(或域名)/tetris 和 http://ip地址(或域名)/tetris2 的方式就可以访问到这两个项目。

也就是
http://example.com/tetris路径分发到http://localhost:3000
http://example.com/tetris2路径分发到http://localhost:3002

本文参考
https://blog.csdn.net/cc_want/article/details/83780435
https://blog.csdn.net/kkdelta/article/details/78313970

由于没有备案,所以现在通过 http://域名/项目名 这种方式访问不到。之后我有时间再补充备案的步骤。

猜你喜欢

转载自blog.csdn.net/weixin_44679078/article/details/105738415
今日推荐