2012-04-10 12 views
16

設定をサーバーにアップロードする前に、nginxサブドメインをテストします。 localhostでテストできますか?試してみますlocalhostで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; 
    } 
} 

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

答えて

15

はい、ホストファイルに 'sub.localhost 127.0.0.1'を追加してください。そのサブは何とか解決されなければならない。それはうまくいくはずです。

次に、ネットに行く準備が整ったら、はい、サブドメインsubのaまたはcnameレコードを追加します。

私はproxy_passを使うとき、nginxのproxy.confも含めます。 独自のドメイン名を使用して、パブリックWebサーバに対してhttp://wiki.nginx.org/HttpProxyModule

+0

はい、ありがとうございます。 – madhead

5

、あなたは自分の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を使用することをお勧めします。

1

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 restart 

次に、URLバーにhttp://<subdomain>.localhostを入力してください。

私のために働く。

UPDATE私の意見で

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

server { 
    listen 80 default_server; 
    root /var/www/html/errors; 
    server_name *._; 

    location/{ 
    index 404.html; 
    } 

} 

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

この場合、/etc/hosts*.localhostを入れてください。ただし、localhostにしてください。

関連する問題