2017-06-19 91 views
0

Nginx的反向代理我有一个ubuntu 16服务器上的两个网站,我想让他们通过使用nginxreverse proxygunicorn网络访问(Gunicorn上127.0.0.1:8000127.0.0.1:8001内部提供的网站)。没有DNS多个网站

两个网站将永远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; 
     } 
    } 
} 

我相信,做的伎俩为您服务。