2015-08-13 36 views
0

短版本:更改服務器名稱使用nginx配置返回給應用程序?

是否有可能使nginx的改變服務器名稱「myexample.com」到「example.com」,並用它返回到應用程序的nginx服務器標籤應用程序正在使用uwsgi_pass?

長的版本:

我有一個運行的燒瓶應用Nginx上服務器。它使用uwsgi_pass和一個套接字來運行應用程序。 我的瓶的應用程序有

app.config['SERVER_NAME'] = 'example.com' 

解決子域(我有幾個藍圖上的子域工作)。我還註冊了另一個子域,例如我想重定向到這個服務器IP的myexample.com,並且行爲完全相同。 但我知道,因爲燒瓶使用該「example.com」的子域名解析,它不會工作!

我不能在燒瓶中找到它,但我想知道是否有可能讓「myexample.com」的nginx更改服務器名稱爲「example.com」,然後將它傳遞給應用程序?我認爲這樣它應該可以正常工作。

謝謝

回答

0

這是可能的,因爲Nginx支持正則表達式。

不確定瓶,但是,例如,在PHP:

server 
{ 
    server_name   ~^(?<project>.+)\.dev$; 
    set $root /var/www/$project; 
    root $root; 
    error_log    /var/log/nginx/error.log; 
    location ~ \.php$ { 
     fastcgi_param MAGE_RUN_CODE $project; 
     fastcgi_read_timeout 3600; 
     include  /etc/nginx/fastcgi_params; 
     fastcgi_pass development; 
     fastcgi_split_path_info ^(.+\.php)(/.+)$; 
    } 
} 

PHP將有一個與$project用火柴值的正則表達式叫$MAGE_RUN_CODE變量。

0

您可以使用此

proxy_set_header HOST  "example.com" ; 
    proxy_pass http://127.0.0.1/; 
    proxy_buffering off;