Ubuntu下Vapor監(jiān)聽80端口

最近在研究Swift開發(fā)服務(wù)端,用的Vapor框架,遇到的問題和解決方法一一記錄下來。
在Linux下普通用戶默認(rèn)是不能監(jiān)聽1024以下的端口的,我平常的做法一般是兩個(gè)。

  • 通過iptables把80端口轉(zhuǎn)發(fā)到Vapor監(jiān)聽的端口
  • 通過Nginx方向代理Vapor監(jiān)聽的端口
    (如果是用騰訊云或阿里云的服務(wù)器請(qǐng)先查看服務(wù)器的安全組有沒有開放80端口)

通過iptables把80端口轉(zhuǎn)發(fā)到Vapor監(jiān)聽的端口

我用的是16.04版本,不同的版本可能有些許差異。
首先執(zhí)行以下命名,設(shè)置好轉(zhuǎn)發(fā)規(guī)則,8080為Vapor監(jiān)聽的端口。

sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

然后安裝iptables-persistent

sudo apt-get install iptables-persistent

最后保存規(guī)則

sudo iptables-save

通過Nginx方向代理Vapor監(jiān)聽的端口

首先安裝Nginx。

sudo apt-get update
sudo apt-get install nginx

安裝完后訪問80端口應(yīng)該能看到nginx的歡迎頁面。
nginx的默認(rèn)配置在/etc/nginx下,我們要做的就是修改/etc/nginx/nginx.conf文件。

sudo vi /etc/nginx/nginx.conf

把http段最后的

include /etc/nginx/sites-enabled/*; 

注釋掉

#include /etc/nginx/sites-enabled/*; 

然后在http段中增加以下內(nèi)容:

server {
        listen 80;
        server_name localhost;
        location / {
                proxy_pass http://localhost:8080;
                proxy_redirect off;
                proxy_set_header Host $host;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Real-IP $remote_addr;
        }
}

8080為Vapor監(jiān)聽的端口
最后重啟Nginx

sudo service nginx restart

通過以上兩種方法的任意一種都可以使Vapor能通過80端口訪問。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容