web-dev-qa-db-ja.com

nginxが外部IPアドレスへのリクエストを処理しない

ポート81でnginxを実行しています。telnet 127.0.0.1 81を使用してTelnetを実行でき、すべて問題ありません。

しかし、Mac(外部IPアドレス)からマシンにtelnetで接続しようとすると、次のエラーが発生します。

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;
        }
        ...

ポート81を許可するためにUbuntu Firewall(ufw)を開きました。

私は今、完全に行き詰まっています。

誰かアイデアはありますか?

9
Eamorr

サーバー名は

server_name 109.123.x.x;

これは間違っています !!!!!

のような数字ではない名前を入れてください

server_name mywebsite.home;

そして、mywebsite.homeをnginxサーバーのIPとしてホストファイル(/ etc/hosts)に入れます

109.123.X.X mywebsite.home

x.Xは数値に置き換えられます

または

すべてのリクエストを処理したい場合は、単に

server_name _;

それでも解決しない場合は、以下を確認してください

ファイアウォール、つまりiptablesがトラフィックをブロックしているか、nginxがローカルホストでのみリスニングしている、つまり127.0.0.1である

ファイアウォールを無効にする

Sudo ufw disable

ポート81のリスニングアドレスを確認する

Sudo netstat -tulpn
17
kaji

数か月前に、ubuntuシステムでngnixを実行して別のWindowsシステムからサービスにアクセスしようとすると、同じ問題が発生します。 http://127.0.0.1/80 のようなポートサービスにアクセスして実行することはできません。しばらくすると、ubuntuシステムのファイアウォールをオフにしてこれに打ち勝ちました。

ファイアウォールをオフにするコマンド:

    Sudo ufw disable

最初にファイアウォールのステータスを確認することもできます。

    Sudo ufw status
1
Abhishek-Saini

私に役立つヒント:A.)ポート転送B.)パブリックIPをserver_nameとして設定するこれらの手順は、特にヒントAでうまくいきました。

0
A09hopper