最近用Python做了个接口服务,部署在了
300
端口上。而后,又想将一个二级域名直接解析到300
端口上,这时候就需要使用神器NGINX了。此前并没用过NGINX,记录一下。
使用这个方法,就可以为服务器上的多个接口服务安排不同的域名了,即将多个域名解析到服务器的不同端口。
1、首先在Ubuntu上安装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 books.ireading.com;
location / {
proxy_pass http://127.0.0.1:300;
}
}
listen 80
表示NGINX监听的是80
端口,80
端口是默认的网络端口;
books.ireading.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:80
查看一下,原来是Apache已经占用80
端口了(Apache和NGINX这么相爱相杀么TT)。此时,可以用sudo service apache2 stop
关闭Apache,NGINX就正常启动了。
这时候,当打开网址books.ireading.com
,就自动解析到300
端口上的Python服务了。