nginx如何代理基于thinkjs的node网站?
发布于 作者:苏南大叔 来源:程序如此灵动~在以前的学习中,大家可以知道:基于thinkjs
的网站,在生产模式下,需要使用nginx
作为代理,才能正常使用。否则会引发一系列匪夷所思的问题。
本篇文章中,苏南大叔将要讲述,如何利用nginx
对接thinkjs
的网站。本文的前提是,您已经安装好了nginx
,并且有一个thinkjs
的网站项目代码,并且已经安装好了PM2
。如果您还有没有准备好的项目,请参照本文最下方的“关联文章”内容,进行设置。
修改关键配置文件
首先,苏南大叔的思路是先修改thinkjs
端口,然后用pm2
启动网站,然后在nginx
里面设置vhost
,将ng
的80
端口代理到thinkjs
的新端口。所以,配置思路是这样的:
src/config/config.js
修改port
设置,当然不修改的话,默认就是8360
端口。
注意:这里不能修改端口号为9000
,原因是:9000
端口是php-fpm
的默认端口,而接下来,苏南大叔还要设置php
共存。所以,在这里,不能埋下冲突隐患。
使用pm2
启动thinkjs
网站
如果你项目根目录下面的pm2.json
配置确认路径正确的话,就可以使用pm2
启动这个网站了。
pm2 start pm2.json
启动完成后,在服务器上面,就可以使用127.0.0.1
的相关端口(默认8360
)访问了。
使用nginx
的vhost
代理node
网站
苏南大叔把thinkjs
项目根目录下面的nginx.conf
文件复制到nginx
配置文件的server
目录下面。如果您的nginx
是使用brew
安装的话,那么默认配置文件的位置,可能是这里:
/usr/local/etc/nginx/servers/<yourname>.conf
然后苏南大叔根据需要再进行修改设置,里面非常要注意的一项是:一定要注意nginx中的root是thinkjs下面的www目录。并且,thinkjs
需要开启production
模式。否则会出现静态资源不能访问的情况,具体可以参考这篇文章:
测试nginx
设置
老生常谈的操作如下,不做赘述。
nginx -t
nginx -s reload
总结
熟能生巧,多操作操作,总是没有什么问题的。大家加油!
参考文章
- 《node程序的部署神器pm2的基本使用》 https://newsn.net/say/node-pm2-basic.html
- 《nginx及apache代理pm2启动的node程序》 https://newsn.net/say/nginx-apache-node.html
- 《mac系统nginx和apache共存》 https://newsn.net/say/mac-nginx-apache.html
- 《thinkjs生产模式下,静态资源文件404问题的解决方案》 https://newsn.net/say/thinkjs-resource-404.html
- 《nginx及apache代理pm2启动的node程序》 https://newsn.net/say/nginx-apache-node.html
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。