一聚教程网:一个值得你收藏的教程网站

热门教程

nginx中常用问题(nginx 301/绑定独立IP地址)

时间:2022-06-30 19:00:36 编辑:袖梨 来源:一聚教程网

如果是Apache的话比较好设定,可以用NameVirtualHost来指定哪个IP绑定哪个域名,但是nginx应该如何把ip绑定到域名商呢?Slicehost论坛上也有人讨论过如何绑定ip的问题。核心的问题就是,如果直接输入ip,nginx会把这个ip对应到哪个域名上呢?答案是随机的。如果想要在某个域名做为catchall的,可以设定如下规则:

 代码如下 复制代码
server{
listen  80 default;
....
}

那么如何绑定独立IP呢?由于ip信息其实是在在NGINX官方HTTPcore Listen的说明文档上也提到了这个是用方法,可以比较方便的是使用如下

 代码如下 复制代码
server{
listen  99.69.16.3:80;
server_name www.111com.net
....
}

也可以直接这样写:

 代码如下 复制代码
server{
listen  114.163.186.110;
server_name www.111com.net
....
}
server{
listen  99.69.16.3;
server_name www.111com.net
....
}

这样独立的ip就被绑定到固定的域名上去了

q2

第一种方法是判断nginx核心变量host(老版本是http_host):

 代码如下 复制代码
server {
server_name www.111com.net www.111com.net ;
if ($host != 'www.111com.net' ) {
rewrite ^/(.*)$ http://www.111com.net/$1 permanent;
}
...
}

第二种方法:

 代码如下 复制代码
server {
server_name www.111com.net;
rewrite ^/(.*) http://www.111com.net/$1 permanent;
}

我用的是第一种方法,这两种方法中, permanent是关键,详细说明见nginx重定向规则说明。

last – 基本上都用这个Flag。
break – 中止Rewirte,不在继续匹配
redirect – 返回临时重定向的HTTP状态302
permanent – 返回永久重定向的HTTP状态301

热门栏目