
私はサーバーの経験がまったくない開発者で、現在取り組んでいるこのプロジェクトは、サーバーの世界への最初の進出です。基本的に、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
ポートを開いてみてください。