最近用Python做了個(gè)接口服務(wù),部署在了
300端口上。而后,又想將一個(gè)二級(jí)域名直接解析到300端口上,這時(shí)候就需要使用神器NGINX了。此前并沒用過NGINX,記錄一下。
使用這個(gè)方法,就可以為服務(wù)器上的多個(gè)接口服務(wù)安排不同的域名了,即將多個(gè)域名解析到服務(wù)器的不同端口。

1、首先在Ubuntu上安裝NGINX
命令很簡(jiǎn)單,使用apt install進(jìn)行安裝:
apt install nginx
安裝好之后,使用命令systemctl status nginx可以查看NGINX的運(yùn)行狀態(tài),如下所示:

2、將域名解析到服務(wù)器IP
因?yàn)槭褂玫氖侨A為云,在華為云后臺(tái)手動(dòng)將域名解析到域名,這一步比較簡(jiǎn)單,前提是要進(jìn)行域名備案(后來還查到,其實(shí)阿里云是有隱形URL這個(gè)功能的,比華為云更方便,華為云就不具備端口解析的功能)。
3、使用NGINX進(jìn)行端口解析
NGINX的配置文件位于路徑/etc/nginx,可以看到這個(gè)路徑下是有一個(gè)配置文件nginx.conf的,這是NGINX的總配置文件。打開這個(gè)文件看一看,內(nèi)容并不長(zhǎng),比較關(guān)鍵的是如下兩行,它告訴我們還可以將文件放入conf.d和sites-enabled這兩個(gè)文件夾下。我就按照以前的習(xí)慣,將自己的配置文件放到conf.d里吧。

4、編寫配置文件
使用命令vim ireading.conf創(chuàng)建配置文件并編寫如下代碼,并:wq退出編輯:
server {
listen 80;
server_name books.ireading.com;
location / {
proxy_pass http://127.0.0.1:300;
}
}
listen 80表示NGINX監(jiān)聽的是80端口,80端口是默認(rèn)的網(wǎng)絡(luò)端口;
books.ireading.com就是在華為云上配置的二級(jí)域名;
proxy_pass http://127.0.0.1:300表示代理的端口是本機(jī)的300端口。
之后,使用nginx -t查看配置文件的語(yǔ)法是否正確,如果正確的話,應(yīng)該如下所示:

然后,為了使新配置文件生效,需要重啟NGINX。先用systemctl stop nginx關(guān)閉NGINX,再用systemctl start nginx啟動(dòng)NGINX。
我在重啟NGINX的時(shí)候,發(fā)現(xiàn)總是報(bào)錯(cuò),原來是因?yàn)?code>80端口已經(jīng)被占用了。使用命令lsof -i:80查看一下,原來是Apache已經(jīng)占用80端口了(Apache和NGINX這么相愛相殺么TT)。此時(shí),可以用sudo service apache2 stop關(guān)閉Apache,NGINX就正常啟動(dòng)了。
這時(shí)候,當(dāng)打開網(wǎng)址books.ireading.com,就自動(dòng)解析到300端口上的Python服務(wù)了。