web-dev-qa-db-ja.com

ローカルホストでnginxサブドメインをテストする方法

サーバーに構成をアップロードする前に、nginxサブドメインをテストしたいと思います。 localhostでテストできますか?やってみる

server {
    listen       80;
    server_name  localhost;

    location / {
        proxy_pass http://localhost:8080;
    }
}

server {
    listen       80;
    server_name  sub.localhost;

    location / {
        proxy_pass http://localhost:8080/sub;
    }
}

そして、それは機能しません。動作させるために、hostsファイルを変更しますか?また、サイトをサーバーにアップロードした後、DNSレコードを変更してsub.mydomain.comを追加する必要がありますか?

28
madhead

はい、「127.0.0.1 sub.localhost」をホストファイルに追加します。その潜水艦はどういうわけか解決する必要があります。うまくいくはずです。

次に、ネットに接続する準備ができたら、はい、サブドメインsubのaまたはcnameレコードを追加します。

Proxy_passを使用するときは、nginxのproxy.confも含めます。 http://wiki.nginx.org/HttpProxyModule

22
troseman

LinuxベースのOSでは、Sudo/etc/hostsファイルとして編集し、127.0.0.1 localhost127.0.0.1 *.localhostに変更するだけです。

したがって、/etc/nginx/sites-enabled/<environment>/<your_project_name>server_nameキーを<subdomain>.localhostとして編集します。

Nginxとネットワークサービスをリロードします。

$ Sudo service nginx reload
$ Sudo service networking reload

そして、URLバーでhttp://<subdomain>.localhostを試してください。

わたしにはできる。

[〜#〜]更新[〜#〜]

私の意見では、より良い解決策は、サブドメインが存在しない場合にのみ応答する仮想サーバーを/etc/nginx/sites-enabled/development/defaultにデフォルトサーバーとして作成することです(デフォルトとして定義できるサーバーは1つだけであることに注意してください)。

server {
  listen 80 default_server;
  root /var/www/html/errors/404;
  server_name *.localhost *.<Host-name>;

  location / {
    index subdomain.html;
  }

}

nginx.conf(通常/etc/nginx/nginx.confにある)に、この仮想サーバーの動作にinclude /etc/nginx/sites-enabled/**/*;が含まれていることを確認してください。そうでない場合は、それを入れてから$ Sudo service nginx reloadを実行します。

この場合、*.localhost/etc/hostsを入れる必要はありませんが、localhostだけを入れます。

5
rplaurindo

独自のドメイン名を持つパブリックウェブサーバーの場合、DNS構成でCNAMEレコードを使用して正規名を追加するだけです。

CNAME    *    example.com.

これが完了したら、nginx設定を設定します

server_name  *.example.com example.com;

ローカル設定ではnginxの同じ設定を維持できますが、ローカルDNS設定がない限り、/ etc/hostsファイルを編集して各サブドメインを手動で追加する必要があります。ワイルドカードは、/ etc/hostsファイルでは機能しません。

127.0.0.1  abc.example.com def.example.com ghi.example.com

通常、ローカルドメインの名前空間として.localを使用することをお勧めします。

5