2017-01-07 9 views
0

同じマシンから複数のサイトを提供したいと思います。同じサーバから複数のサイト(サブドメイン)を提供するためのnginx設定

各サイトでは、ポートをリッスンしてnginxを使用して、アプリケーションサーバー(uwsgi)と通信し、別のポートをプロキシサーバーとして使用しています。 各サイトはuwsgiとフラスコを使用しています。

すべてのサイトは同じAPI終了点名を共有しているため、唯一の違いはサブドメイン名です。このような

何か:

server { 

    listen 8000 default_server; 

    server_name 00.myexample.com; 

    ... 

} 

# Set cache dir 
proxy_cache_path /tmp/nginx levels=1:2 keys_zone=my_zone:10m max_size=50m inactive=60m; 
proxy_cache_key "$scheme$request_method$host$request_uri"; 


# Virtualhost/server configuration 
server { 
    listen 80 default_server; 

    server_name 00.myexample.com; 

    location/{ 

     proxy_cache my_zone; 
     include proxy_params; 
     proxy_pass http://00.myexample.com:8000; 
    } 

... 

} 

私はちょうど別のポートに耳を傾けるようにする必要があります(00.myexample.com、01.myexample.com)複数のサイトを複製するように、と思いました。

server_nameで、競合を避けるために十分な別のポート(キャッシュなど)がありますか? uwsgiは各アプリケーションの異なるポートを聴かなければなりませんか? (これは、各サイトのフォルダ内のソケットを介してnginxと通信します)

複数のサブドメインを同じマシンにルーティングするためにどのように設定しますか?

答えて

0

あなたのconfファイルに複数のserverブロックを使用することができます。また、server_nameがそれぞれ異なる場合、それらは区別して扱われます。各サブドメインのバックエンドがまったく同じ場合は、ブロックserverごとに同じ値をproxy_passに使用できます。それ以外の場合は、バックエンドごとにプロセスを実行し、別のポートでリスンする必要があります。

+0

同じサーバーを使用している場合は、各サーバーブロックのproxy_passに同じ値を使用できます。価値観では、同じポートを聞いているのですか?例えば'server {server_name 00 .. location/{proxy_pass http://00.myexample.com:8000; } ..}#and server {server_name 01 .. location/{proxy_pass http:// 01.myexample.com:8000; } ..} '?それはnginxキャッシュと競合しませんか?サーバ名を同じIPマシンにルーティングすることはできますが、異なるポートに割り当てることはできますか?例えば00.example.com XX.XXX.XX.XXX:8000、01.example.com XX.XXX.XX.XXX:7000のドメイン?どのポートが「一般的に」無料ですか? – user305883

関連する問題