Nginx应用中的一些实际需求解决方案

1.URL重定向

      1.1 域名泛解析,如需要把http://wo500.com、a.wo500.com、b.wo500.com、c.wo500.com等一切不是以www开始的都跳转(301重定向)到www.wo500.com上,则可在nginx的配置文件中(具体的某个站点的nginx配置文件中更好)加上如下一段话:
#设置301重定向(益于搜索引擎) if ($host != 'www.wo500.com') { rewrite ^/(.*)$ http://www.wo500.com/$1 permanent; }

        1.2.网站运营一段时间后,有这样一个需求就出来了如:http://www.wo500.com/Down/1.html、http://www.wo500.com/Down/2.html、http://www.wo500.com/Down/3.html等等有无数个这样的静态页面文件(后台自动生成的)。。这是原来的下载页面.但现在由于某种原因,需要把这些大量的静态文件迁移到站点下的另一个目录结构下(即是说网站后台的页面生成目标地址发生了改变),但此时由于搜索引擎大量的抓取了网站上的这些静态文件,如果我们把原来的删了(Down/1.html),直接改用新的目录结构存放(Down/1/index.html),则请求URL地址就变成了http://www.wo500.com/Down/1/(index.html可省略),此时如果从搜索引擎过来的用户访问(由于搜索引擎要删除404不存在的收录页面需要很长的一段时间)的URL则还是原来的URL(http://www.wo500.com/Down/1.html),好了,长篇大论也这么多了,既然有问题,那么就需要我们去解决它不是吗?还是它----301重定向。规则:

                    http://www.wo500.com/Down/1.html     --->         http://www.wo500.com/Down/1/

                    http://www.wo500.com/Down/2.html     --->         http://www.wo500.com/Down/2/

                    http://www.wo500.com/Down/3.html     --->         http://www.wo500.com/Down/3/

                    http://www.wo500.com/Down/4.html     --->         http://www.wo500.com/Down/4/

                    http://www.wo500.com/Down/5.html     --->         http://www.wo500.com/Down/5/

                                                             。。。。。。。

明白了吧,也就是说当用户请求http://www.wo500.com/Down/1.html这类URL的时候,则Nginx就要发起一个重定向把该URL重定向到http://www.wo500.com/Down/1/。其实只需要一句代码就可解决这个问题,谁叫有万能正则表达式呢。

rewrite ^/Down/(/d+)/.html /Down/$1/ permanent;

http://www.36dj.com/1/2/3.html   301跳转到http://www.36dj.com/2/3.html

 

  rewrite ^/(\d+)/(\d+)/(\d+).html /$2/$3.html permanent;

 

 

 

 

 

 

 

    1.3 不多作理论的知识解释了.

                需求:http://abc201004-03x32768.wo500.com(201004:年月,03:日,32768:文章ID,abc - x为固定值),其中不同的文章所对应的年月日与文章ID都是会变化的.现网站因需求调整要把原来所对应的这个URL地址调转成http://www.wo500.com/u/201004/03-32768.html.为了对搜索引擎机器人作良好的SEO,所以还是要用301重定向:

server { listen 80 default; server_name *.wo500.com; #http://abc201004-03x32768.wo500.com/ #http://www.wo500.com/u/201004/03-32768.html if ($http_host ~* "^abc(.*)-(.*)x(.*)/.wo500/.com$") { set $a $1; set $b $2; set $c $3; rewrite ^(.*) http://www.wo500.com/u/$a/$b-$c.html permanent; } }

 

 

 

2.解决Nginx后端服务器(tomcat等)不能得到客户端真实IP的问题

location ~ (/.do)|(/.ejf)$ { proxy_pass http://www.wo500.com:4955; #把客户端真实IP传递给后端服务器 proxy_set_header X-Real-IP $remote_addr; }

// Nginx传过来的真实IP tring ip = ActionContext.getContext().getRequest().getHeader("X-Real-IP"); if (ip == null || "".equals(ip)) ip = ActionContext.getContext().getRequest().getRemoteAddr();

此时在后端服务器可用httpServletRequest.getHeader("X-Real-IP")来得到客户端的真实IP.

 

3、隐藏Nginx版本号

 

#隐藏NGINX版本号#

server_tokens off;

 

4、Nginx映射Servlet

 

location ^~/servlets/* {
    proxy_pass              http://localhost:8080;
    proxy_set_header        X-Real-IP $remote_addr;
    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header        Host $http_host;
}

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值