35

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

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を追加する必要がありますか?

4

3 に答える 3

30

はい、hostsファイルに「127.0.0.1sub.localhost」を追加します。その潜水艦はどういうわけか解決されなければなりません。それはうまくいくはずです。

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

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

于 2012-05-02T07:54:29.030 に答える
9

LinuxベースのOSでは、sudo /etc/hostsファイルとして編集してに変更127.0.0.1 localhostするだけ127.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

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

わたしにはできる。

アップデート

私の意見では、より良い解決策は、サブドメインが存在しない場合にのみ応答する仮想サーバーを/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.confin (通常はat /etc/nginx/nginx.confinclude /etc/nginx/sites-enabled/**/*;にこの仮想サーバーの作業が含まれていることを確認してください。そうでない場合は、それを配置してから実行し$ sudo service nginx reloadます。

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

于 2017-12-04T05:31:08.697 に答える
7

独自のドメイン名を持つパブリックWebサーバーの場合、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を使用することをお勧めします。

于 2014-11-19T04:44:32.777 に答える