注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

永福的技术博客

Linux运维

 
 
 

日志

 
 

使用ip地址不能直接访问网站的nginx配置  

2011-08-29 23:13:07|  分类: CentOS |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
使用ip地址直接访问网站域名会降低域名的权重,同时如果别的网站域名也直接DNS解析到该ip地址,也会被搜索引擎当作是作弊,而降低排名的权重,不利于seo优化,所以我们希望通过避免直接使用ip访问网站。
nginx官方:
If you do not want to process requests with undefined “Host” header lines, you may define a default server that just drops the requests:
在nginx中添加如下server段:
server {
        listen       80 default;
        server_name _;
return 444;
}
【注意】
1.一定要注意是要作为第一个server段,nginx是按先后顺序来匹配域名的。
2.要注意是listen 80 default; 不要写成 listen 80 default_server;不然会出现错误:
[emerg]: "default_server" parameter can be specified for the default "listen" directive only in /opt/app/nginx/conf/nginx.conf:35

修改完之后要检测配置和重新加载配置
nginx -t    #检测nginx的配置
nginx -s reload      #重新加载配置

以上的配置好像又不太友好,如果能直接给跳转到该web server的网址就好了。
配置如下:
server {
     listen 80 default;
    server_name _;
    rewrite ^ http://www.domain.com$request_uri?;
}
上面的配置还是有一点问题,某些特别的地址,我需要用ip访问,其他的都禁止,如何配置呢?
比如说我想让监控宝直接用ip访问我的机器的nginx状态信息,其他的用ip访问的所有请求都跳转到域名上。
server {
    listen 80 default;
    server_name _;
    location /xxxxx {
        stub_status on;
        access_log off;
    }
    location / {
        rewrite ^ http://www.domain.com$request_uri?;
    }
}
这样就实现了我们想要的功能了。

同时请一定要记得修改完之后要检测配置和重新加载配置使生效
nginx -t    #检测nginx的配置
nginx -s reload      #重新加载配置使生效

参考文档:

PS: 
http的444错误:Error 444 - No Response
The connection is closed because the server returns no information.
  评论这张
 
阅读(1805)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018