首先我们要登录到服务器上去配置nginx,上一节只能用 curl http://localhost3000 来访问,并不能通过外网的3000来访问,也不能通过外网的:3000来访问,不合理。而应该是通过一个域名,指向 http://localhost3000 来访问它,所以要配置Nginx的反向代理。
因为在服务器中的远程连接中要改代码是通过vim的,可能不是很方便,这里推荐在vscode里面做,安装一个插件Remote - SSH,安装好后会在左边多出一个远程资源管理器。就可以在vscode里面,就像管理我们本地文件夹一样去管理服务器上的文件夹。
去远程资源管理器设置里修改成:
配置后之后打开alias后面的小窗口,会去连接这个服务器,输入服务器的密码。
打开文件夹,就可以看到服务器里的文件夹了:
我们进入etc:etc是这个里面的一个配置文件的文件夹,几乎所有服务配置都在/etc里面,包括nginx和其他的配置,里面有一个nginx:
之后回车再回车。就可以看到nginx的配置文件夹了,在所有的类unix系统里面的配置都是文件,而不是图形界面里面设置。
在里面的sites-enabled里新建我们自己的网站,具体怎么写的话有点麻烦,这里推荐一个网站,https://nginxconfig.io/
这是一个在线自动生成nginx配置的网站。记得选nodejs,Server里的enabled都不要勾选,还有HTTPS里的HTTPS选项勾去掉,先不要启用HTTPS。Reverse proxy 反向代理,这里需要注意:我们的服务器就监听在3000端口,反向代理默认填的是3000,没有问题。
再看下面的全局设置里面:Global Config
最下面是自动生成的文件,下载下来的文件:
我们需要做的是将这些文件夹文件都复制过去,都是nginx.conf是它的网站的配置文件,这个暂时先不要复制。回到vscode的远程资源管理器。刚刚建的moba不需要了。
复制进来后就是重新去启动它,输入命令:sudo service nginx reload 或 sudo /etc/init.d/nginx reload
如果是在远程新建miqilin21.cn.conf:sudo touch miqlin21.cn.conf,修改:sudo vim miqilin21.cn.conf
重载nginx的配置文件。
If you want to uninstall completely:
sudo apt-get purge nginx nginx-common
test.miqilin21.cn就反向代理到本地的这个3000端口:http://127.0.0.1:3000,也就是nodejs的服务。
这里遇到一个坑:就是在上面生成nginx配置的网站下载下来的sites-enabled/test.miqilin21.cn.conf中的是:
../sites-available/test.miqilin21.cn.conf 相当于引用了sites-available/test.miqilin21.cn.conf`里一样的内容,但是这个会报一个错:
job for nginx.service failed because the control process exited with error code
原因初猜测应该是版本不一样导致的问题,test.miqilin21.cn.conf要以一个分号结尾,解决方法:将sites-available/test.miqilin21.cn.conf中的内容复制给sites-enabled/test.miqilin21.cn.conf。就解决了:
浏览器此时输入:test.miqilin21.cn:
但是现在数据库是没任何东西的,所以里面没有任何数据,后台admin也是不能登录的。要么把本地数据导到线上去,要么通过代码的形式去创建一个用户。
