每隔一段时间,有人试图通过公共IP而不是我们的某个域访问我们的网站(是的,我们有多个国家/地区特定域.dk,。,。等等。但是我们也有.com作为一般”)。
现在,我想将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_page
到http://www.mysite.com/some_page
,但保留所有其他内容http://www.mysite.dk/some_page
不变?
答案 0 :(得分:1)
您可以使用以下指令设置一个catchall服务器:
listen 80 default_server;
server_name _;
如果您有多个服务器节,则可以使用default_server
指定在主机名与任何其他server_name
条目不匹配时使用的配置。使用ip号符合此方案。 server_name _;
行充当空server_name
条目。
如果您的某个服务器有多个域名,这也很有用。