Nginx

nginx 不為外部 IP 地址的請求提供服務

  • December 20, 2021

我在埠 81 上執行 nginx。我可以使用 telnettelnet 127.0.0.1 81並且一切都很好。

但是當我嘗試從我的 Mac(外部 IP 地址)遠端登錄到我的機器時,我得到了這個錯誤:

telnet: connect to address 109.123.x.x: Connection refused
telnet: Unable to connect to remote host

這是我的 /etc/nginx/sites-available/default 文件:

server {
       listen   81; ## listen for ipv4; this line is default and implied
       #listen   [::]:80 default ipv6only=on; ## listen for ipv6

       root /usr/share/nginx/www;
       index index.html index.htm;

       # Make site accessible from http://localhost/
       server_name 109.123.x.x;

       location / {
               # First attempt to serve request as file, then
               # as directory, then fall back to index.html
               try_files $uri $uri/ /index.html;
       }
       ...

我已經打開了 Ubuntu 防火牆 (ufw) 以允許埠 81。

我現在完全被困住了。

有人有想法麼?

您的伺服器名稱為

server_name 109.123.x.x;

這是錯誤的!!!!

輸入任何名稱而不是數字

server_name mywebsite.home;

並將 mywebsite.home 作為 nginx 伺服器的 IP 放入您的主機文件(/etc/hosts)中,即在您的 mac 中,如格式

109.123.X.X mywebsite.home

其中 XX 被數字替換

或者

如果您想滿足所有請求,只需輸入

server_name _;

如果這不能解決問題,請檢查以下內容

要麼是你的防火牆,即 iptables 阻止了你的流量,要麼你的 nginx 只在本地主機上監聽,即 127.0.0.1

禁用防火牆

sudo ufw disable

檢查81埠的監聽地址

sudo netstat -tulpn

引用自:https://serverfault.com/questions/361499