Nginx
文章平均质量分 90
叉叉哥
这个作者很懒,什么都没留下…
展开
-
Nginx配置网站适配PC和手机
考虑到网站的在多种设备下的兼容性,有很多网站会有手机版和电脑版两个版本。访问同一个网站URL,当服务端识别出用户使用电脑访问,就打开电脑版的页面,用户如果使用手机访问,则会得到手机版的页面。原创 2015-06-29 14:59:00 · 15836 阅读 · 1 评论 -
Jetty/Tomcat + Nginx反向代理获取客户端真实IP、域名、协议、端口
问题Nginx反向代理后,Servlet应用通过request.getRemoteAddr()取到的IP是Nginx的IP地址,并非客户端真实IP,通过request.getRequestURL()获取的域名、协议、端口都是Nginx访问Web应用时的域名、协议、端口,而非客户端浏览器地址栏上的真实域名、协议、端口。例如在某一台IP为10.4.64.22的服务器上,Jetty或者Tomcat端口号为原创 2017-06-26 11:32:58 · 8946 阅读 · 1 评论 -
利用X-Forwarded-For伪造客户端IP漏洞成因及防范
问题背景在Web应用开发中,经常会需要获取客户端IP地址。一个典型的例子就是投票系统,为了防止刷票,需要限制每个IP地址只能投票一次。如何获取客户端IP在Java中,获取客户端IP最直接的方式就是使用request.getRemoteAddr()。这种方式能获取到连接服务器的客户端IP,在中间没有代理的情况下,的确是最简单有效的方式。但是目前互联网Web应用很少会将应用服务器直接对外提...原创 2018-10-15 09:44:48 · 67439 阅读 · 8 评论 -
Nginx失败重试中的HTTP协议幂等问题: non_idempotent
Nginx通过反向代理做负载均衡时,如果被代理的其中一个服务发生错误或者超时的时候,通常希望Nginx自动重试其他的服务,从而实现服务的高可用性。实际上Nginx本身默认会有错误重试机制,并且可以通过proxy_next_upstream来自定义配置。如果不了解HTTP协议以及Nginx的机制,就可能在使用过程中遇到各种各样的坑。例如服务出现了错误或超时却未重试,或者一些例如创建订单或发送短信这...原创 2019-04-21 22:23:44 · 2427 阅读 · 0 评论