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


10

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

しかし、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;
        }
        ...

Ubuntu Firewall(ufw)を開いてポート81を許可しました。

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

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

回答:


17

サーバー名は

server_name 109.123.x.x;

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

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

server_name mywebsite.home;

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

109.123.X.X mywebsite.home

XXは数字に置き換えられます

または

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

server_name _;

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

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

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

sudo ufw disable

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

sudo netstat -tulpn

私はポート8080に切り替えましたが、現在は機能しています。特権ポートと関係があるか、3G接続がポート81をブロックしている可能性があります。とにかく、現在は機能しています。助けてくれて本当にありがとうございます。
Eamorr

ラックスペースやAWSなどのクラウド内のインスタンスの場合は、セキュリティグループを確認してください。デフォルトでは、ポート22と80だけが通常開いているポートです。
radtek 2014年

sudo ufw disable私のためにそれをやりました。
GG_Python

よるとnginxのドキュメントIPアドレスを使用すると、server_nameは間違っていない持っています「誰かがサーバー名の代わりにIPアドレスを使用してリクエストを行う場合、「ホスト」リクエストヘッダーフィールドにはIPアドレスが含まれ、リクエストはサーバー名としてIPアドレスを使用して処理できます。」
Gabriel Glenn

1

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

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

    sudo ufw disable

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

    sudo ufw status

0

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


サーバー名は、実際にはIPであってはなりません。
Matt
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.