Nginx

1个成员

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

发表于 2016-12-30 4043 次查看
文章介绍了两个基本的也是大家常用到的一些nginx的用法,主要是用nginx 301/绑定独立IP地址两个问题,有需要的朋友可以参考一下。

如果是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.php100.com
....
}

也可以直接这样写:

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

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

q2

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

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

第二种方法:

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

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

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

发表回复
你还没有登录,请先登录注册