Skip to content

Latest commit

 

History

History
48 lines (39 loc) · 3.09 KB

数据开放网站“坑”记录.md

File metadata and controls

48 lines (39 loc) · 3.09 KB

数据开放网站“坑”记录


  1. nginx进行代理时再使用csrfguard会出现代理不正常

解决方法:在stackoverflow上的这里

  1. 实现nginx动态代理多个web server(tomcat),并附带session共享

解决方案:核心思路将session存储在redis中。实现思路在这里。还有一个工具包在这里

  1. csrfguard的使用

解决方案:官网

  1. Kaptcha验证码的使用

解决方案:配置说明文档,解决google jar包不能下载在这里

  1. spring中使用javax mail发送邮件

解决方案:这里有教程

  1. nginx在进行负载均衡时使用的策略

解决方案:在这里是负载均衡配置方式,考虑到手动指定down机这一行为几乎很难第一时间进行,因此应当充分利用max_failsfail_timeout这两个参数实现动态链接分配。有关nginx的更详细信息参考这里,但这个链接已经失效,想要看到还需要借助archive网站,当然这个神奇的网站在国内是看不到的,接下来的翻墙问题请自行解决(这个是无耻的翻墙广告

  1. nginx负载均衡时会遇到后端代理服务器down机的可能,当有一台机器down机后,nginx仍会尝试将链接分配给该机器,此时页面访问体验很差,出现页面无响应的情况。

经排查发现nginx与后端服务器之间的链接参数中有proxy_connect_timeout,其默认值是60s,也就是说只有当后端60秒无响应才会做出后端服务失效的判断。把这个只修改为1。

  1. 完整版nginx配置如下:
upstream my_server {
    #完成后端服务代理,使用轮询策略,max_fails是容忍失败次数,fail_timeout是失败次数达到上线后多长时间不再请求该服务器。
    server 192.168.31.195:8080 max_fails=3 fail_timeout=200s;
    server localhost:8081 max_fails=3 fail_timeout=200s;
    #keepalive 100;
}
server {
    listen       80;
    server_name  localhost;
    underscores_in_headers on;
    #charset koi8-r;
    #access_log  logs/host.access.log  main;
    location / {
        #将所有请求转发到后端服务器。
    	proxy_pass http://my_server/;
    	proxy_set_header Host $host:$server_port;
    	#对后端服务器进行连接时的超时时长,也就是说连接时超过该时长无响应,认定该服务器已经down机,这个时长影响用户体验,如果太大(默认是60),在用户浏览时一旦代理轮询到了down机的服务器,那么用户就要忍受太长的无响应。
    	proxy_connect_timeout 1;
    }
}