2017-06-19 8 views
0

は、私は、単一のubuntu 16サーバー上の2つのウェブサイトを持っていると私は(Gunicornは内部127.0.0.1:8000127.0.0.1:8001上のウェブサイトを提供しています)nginxreverse proxygunicornを使用して、ネットワークによってそれらにアクセスできるようにしたいです。なしDNSとnginxのリバースプロキシ

どちらのウェブサイトは、決しては私のサーバーへDNSポインティングを持っていますし、両方ポート80の下で実行する必要があります。だから問題は、どうすればこれらのサイトのリバースプロキシを設定できますか?私は、ユーザーが特定のサイトに入るためにホスト名または別のポートを捕まえることができない状況にいる。

マイfirst_website.conf:

upstream first_website { 
    server unix:/var/www/first_website/first_website_env/run/gunicorn.sock 
    fail_timeout=0; 
} 

server { 

    listen 80; 

    # normally I would use different host name 
    # to check, which site user wants to retrieve. 
    server_name 123.12.34.789; 

    client_max_body_size 4G; 
    access_log /var/log/nginx/access.log; 
    error_log /var/log/nginx/error.log; 

    location/{ 
     proxy_pass http://127.0.0.1:8001; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_set_header Host $http_host; 
     proxy_redirect off; 

     if (!-f $request_filename) { 
      proxy_pass http://127.0.0.1:8001; 
      break; 
     } 
    } 
} 
+1

どのようにサーバーを差別化する予定ですか?あなたは彼らが異なる入り口を持ってほしいですか?たとえば、 '123.12.34.789/server1'ですか? –

+0

はい123.12.34.789/server1は良いオプションです。しかし、私はどのようにこれを実装するか分からない、これが良い習慣ならば。 – Fusion

答えて

0

オプションは、例えば、異なるURLの場所にサーバーを配置することになります。

upstream first_website { 
    server unix:/var/www/first_website/first_website_env/run/gunicorn.sock 
    fail_timeout=0; 
} 

server { 

    listen 80; 

    server_name 123.12.34.789; 

    client_max_body_size 4G; 
    access_log /var/log/nginx/access.log; 
    error_log /var/log/nginx/error.log; 

    location /server1/ { 
     proxy_pass http://127.0.0.1:8000; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_set_header Host $http_host; 
     proxy_redirect off; 

     if (!-f $request_filename) { 
      proxy_pass http://127.0.0.1:8000; 
      break; 
     } 
    } 

    location /server2/ { 
     proxy_pass http://127.0.0.1:8001; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_set_header Host $http_host; 
     proxy_redirect off; 

     if (!-f $request_filename) { 
      proxy_pass http://127.0.0.1:8001; 
      break; 
     } 
    } 
} 

私はあなたのためのトリックを行いますと信じています。

関連する問題