2013-12-20 29 views
2

每隔一段時間有人試圖通過公共ip而不是我們的某個域訪問我們的網站(是的,我們有多個國家/地區特定域.dk,.it,.es等。但是我們也有.com作爲「將軍」)。如何將IP上的請求重定向到域

現在我想將這些IP地址上的請求重定向到我們的www.domain.com域。我如何在不觸及任何東西的情況下在nginx中做到這些,但是直接請求IP的請求呢?

這裏是我的nginx.conf

upstream unicorn { 
    server unix:/tmp/unicorn.mysite.sock fail_timeout=0; 
} 

server { 
    listen 80 default deferred; 

    root /home/deployer/apps/mysite/current/public; 
    proxy_set_header X-Request-Start "t=${msec}"; 
    if (-f $document_root/system/maintenance.html) { 
    return 503; 
    } 
    error_page 503 @maintenance; 
    location @maintenance { 
    rewrite ^(.*)$ /system/maintenance.html last; 
    break; 
    } 

    location ~ ^/assets/ { 
    gzip_static on; 
    expires max; 
    add_header Cache-Control public; 
    } 

    try_files $uri/index.html $uri @unicorn; 
    location @unicorn { 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_set_header Host $http_host; 
    proxy_redirect off; 
    proxy_pass http://unicorn; 
    } 

    error_page 500 502 503 504 /500.html; 
    client_max_body_size 4G; 
    keepalive_timeout 10; 

} 

所以現在的問題是,如何修改這個重定向例如http://123.123.123.123/some_pagehttp://www.mysite.com/some_page,但保留其他所有其他類似http://www.mysite.dk/some_page不變?

+0

嘗試在'listen'指令中將'default'更改爲'default_server'。然後在它下面添加'server_name _;'。 –

回答

1

,你可以設置一個包羅萬象的服務器以下指令:

listen 80 default_server; 
server_name _; 

如果你有多個服務器節,你可以使用default_server來指定使用的配置,如果主機名不符合任何其他server_name條目。使用一個ip號碼適合這種情況。 server_name _;行充當空server_name條目。

如果其中一臺服務器有多個域名,這也很有用。

+1

不明白,你能更清楚一點嗎? –

+0

@Niels,我已經給我的答案添加了一個解釋。它有幫助嗎? –

+0

嗯,我想我需要閱讀nginx配置,以瞭解它是如何工作的。我已經添加了我的nginx配置,所以你可以看到它 - 也許幫助內聯。 –

相關問題