1

私は見ました: http://wellconsidered.be/post/10519707671/node-js-on-nginxNode.js + Nginx - 今何?

しかし、彼らのチュートリアルには次のように書かれています:

 server_name www.yoursite.com;

また

 server_name yourdomain.com yourdomain;

しかし、私の場合、ドメインはありません。企業内のマシンに静的 IP (192.168.1.16) があります。server_name を 192.168.1.16 に設定する必要がありますか? とにかく、www.google.com に設定することもできますか? 制限や server_name 変数が正確に何をするのか理解できません。

また、私は見る

listen   80;
server_name www.yoursite.com;

この場合、なぜ 80 を聞くのでしょうか。正確には、ローカルサーバーのポートですか、それとも何ですか?

nginxはサーバーのグローバルルーターである必要があり、静的IP(192.168.1.16:ポートがわからない??とにかくここで重要ですか?)で受信したすべてのリクエストは内部IPにリダイレクトされると思います。これが私が理由ですserver_name を定義する必要がある理由がわかりません。

サーバーを扱ったことのない人へのより良い説明を願っています。

私はubuntuとサーバー構成に非常に慣れていないので、これは非常に明白な質問かもしれません.

4

1 に答える 1

1

1) パラメータの理由server_nameは、複数の異なるドメイン名がすべて同じ IP アドレスを指している可能性があるためです。ブラウザがドメイン名を含む URL に接続する場合、まず DNS ルックアップを実行して適切な IP アドレスを見つけます。Host:次に、そのアドレスに接続し、URL からのドメイン名が後に続くヘッダーを含む HTTP 接続を作成します。そのヘッダーは、リクエストがどのドメインに対するものであったかをサーバーに伝えます。

通常の状況では、Host:DNS がそのドメイン名をその IP アドレスに解決しない限り、サーバーはヘッダーに特定のドメイン名を認識しません。したがって、server_nameフィールドに「www.google.com」を入力した場合、サーバーがそれを見る唯一の方法は、hostsファイルを編集して IP アドレスを含む「www.google.com」のエントリを追加した場合です。最初に、OS の DNS リゾルバが検索されます (もちろん、ブラウザは他の誰のものでもありませんが、常に Google ではなくあなたのサーバーにアクセスします)。

ドメイン名を持っていない場合は、何かを作ることができます。数字の IP URL だけでアクセスした場合、サーバーが実際にそれを見ることはありません。

2) 80 は HTTP サーバーの既定のポートです。URL で明示的に別のポートを指定しない限り、接続はポート 80 に対して行われます。サーバーが複数のポートをリッスンすることは可能ですが、複数のサーバーがリッスンすることも可能です。複数のポートに。したがって、サーバーはリッスンする必要があるポートを知る必要があります。

于 2012-10-02T10:59:23.257 に答える