最近几天用Python写了个接口后台服务,把它部在了服务器的300端口上。之后,我又要把一个二级域名解析到该服务器的300端口上,此时就要用到NGINX了。因为之前对NGINX的使用并不熟悉,特此记录下来,方便回顾。

用了该方法,就能为服务器上的多个不同接口服务绑定不同的域名了,这也就是把多个域名解析到服务器的不同端口上。
1、首先在Linux上安装NGINX
命令很简单,使用apt install进行安装:

apt install nginx

安装好之后,使用命令`systemctl status nginx`可以查看NGINX的运行状态,如下所示:

2、将域名解析到服务器IP

因为使用的是腾讯云,在腾讯云后台手动将域名解析到域名,这步较简单,前提是要进行域名备案(后来还查到,其实阿里云是有隐形URL这个功能的,比腾讯云更方便,腾讯云就不具备端口解析的功能)。

3、使用NGINX进行端口解析

NGINX的配置文件位于路径/etc/nginx,可以看到这个路径下是有一个配置文件nginx.conf的,这是NGINX的总配置文件。打开这个文件看一看,内容并不长,比较关键的是如下两行,它告诉我们还可以将文件放入conf.d和sites-enabled这两个文件夹下。我就按照以前的习惯,将自己的配置文件放到conf.d里吧。

4、编写配置文件

使用命令vim ireading.conf创建配置文件并编写如下代码,并:wq退出编辑:

server {                  listen 80;        server_name sw.dengshanshi.com;        location / {                proxy_pass http://127.0.0.1:300;    }}

listen 80表示NGINX监听的是80端口,80端口是默认的网络端口;

sw.dengshanshi.com就是在华为云上配置的二级域名;

proxy_pass http://127.0.0.1:300表示代理的端口是本机的300端口。

之后,使用nginx -t查看配置文件的语法是否正确,如果正确的话,应该如下所示:

然后,为了使新配置文件生效,需要重启NGINX。先用systemctl stop nginx关闭NGINX,再用systemctl start nginx启动NGINX。

我在重启NGINX的时候,发现总是报错,原来是因为80端口已经被占用了。使用命令lsof-i:300查看一下,原来是Apache已经占用80端口了(Apache和NGINX这么相爱相杀么TT)。此时,可以用sudo service apache2 stop关闭Apache,NGINX就正常启动了。

这时候,当打开网址sw.dengshanshi.com,就自动解析到300端口上的Python服务了。