使用NGINX将二级域名解析到服务器指定端口

2023-01-07  本文已影响0人  SeanCheney

最近用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.dsites-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服务了。

上一篇下一篇

猜你喜欢

热点阅读