シンプルなNginx設定が機能しない

シンプルなNginx設定が機能しない

私はサーバーの経験がまったくない開発者で、現在取り組んでいるこのプロジェクトは、サーバーの世界への最初の進出です。基本的に、Ubuntu で Nginx を実行している Linode サーバーで、API をオンラインでホストする必要があります。そして、'hello' という h1 タグだけの HTML インデックス ページをホストするためのシンプルなサーバー ブロックを設定するのに苦労しています。シンプルなサーバー ブロックを動作させるためのさまざまなチュートリアルに従って読み、ローカル マシンでもこれらのブロックを動作させましたが、リモート サーバーで動作させるのに問題があります。

Linode で動作しなかったブロックをいくつか紹介します。

まず、静的 HTML ページをサーバーする単純なブロックです。これはローカル マシンで動作します。

server {

    listen 8005;
    index index.html;
    root /srv/www/site;

}

もう一つのシンプルなブロック:

server {

    listen [server ip]:8006;
    server_name "";
    index index.html;
    root /srv/www/site;

    location ~/ {

        root /srv/www/site;

    }

}

PHP を提供するためのブロック (ローカルで動作):

server {

    listen [server ip]:8007;
    server_name "";
    index index.php index.html index.htm;
    root /srv/www/site;

    location / {

        try_files $uri $uri/ /index.php?q=$uri&$args;

    }

    location ~* \.php$ {

        try_files $uri /index.php;
        fastcgi_index index.php;
        fastcgi_pass 127.0.0.1:9000;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param SCRIPT_NAME $fastcgi_script_name;

    }

}

ブラウザからアクセスしようとすると、サーバー接続がタイムアウトになりました。DNS を設定していないので、サーバーの IP とポート番号を使用してアクセスしようとしました。

[server ip]:[port]

または

[server ip]:[port]/index.html

しかし何も得られませんでした。

問題の原因の 1 つは、別のアプリケーションが既にサーバー上でホストされていることです。独自のブロックがあり、独自のポートで実行されています。独自の DNS 名がそれを示しています。しかし、これはどれも問題ではありませんよね? 各サーバー ブロックは基本的に仮想サーバーであるか、仮想ドメインを作成します。IP とポートを介してアクセスすると正常に機能するはずですが、機能していません。

私が思いつくのはこれくらいです。この分野に関する私の知識は限界に達しており、賢い人たちの助けが必要です。

答え1

同じサーバーから 127.0.0.1:8005 を使用してアクセスしてみてください。うまくいく場合は、IP テーブルの問題です。その場合は、次のようなコマンドを実行してiptables -A INPUT -i eth0 -p tcp --dport 8005 -j ACCEPTポートを開いてみてください。

関連情報