Nginx重复发送请求到tomcat执行问题解决

起因:

起初采用nginx做负载均衡,部署两个tomcat服务器,WEB端系统存在批量操作数据,把数据通过webservice接口循环一条一条传到第三方系统(第三方系统为避免自己系统并发频繁挂掉,要求我们每条数据间隔一秒后再传送下一条),由于数据量多,WEB前端从发送请求到接到响应请求需要时间至少20分钟;

分析解决过程:

1、起初,由于对nginx负载均衡原理理解不够深,以为是数据操作员批量操作,前端界面因响应时间长,响应完页面未刷新,操作员操作同一批数据到时重复上传,故对前端进行修改。

2、然后,前端修改完毕,进行测试,发现存在同样的重复发送请求问题。故增加打印请求参数日志进行追踪问题。

3、接着,再一次进行测试,查看日志,发现两次同样请求参数的日志时间间隔是10分钟,小于响应请求结束时间20分钟,如果由于页面未刷新进行二次操作则间隔时间应该大于20分钟,故判断不是由于二次操作导致重复请求。此时进行思考,想起系统用了nginx做负载均衡,会不会是一个请求响应时间超过nginx的请求超时时间,nginx再一次对另一个tomcat发起请求,查看nginx的配置,超时时间设置设置刚好也是10分钟(对应两次请求间隔时间)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue 部署到 Nginx 步骤: 1. 打包 Vue 项目:在终端中进入 Vue 项目根目录,执行 `npm run build`,将会在 dist 目录下生成打包好的文件。 2. 安装 Nginx:在服务器上安装 Nginx,具体方法可以参考官方文档或者其他资料。 3. 配置 Nginx:在 Nginx 的配置文件中添加如下配置: ``` server { listen 80; server_name example.com; // 填写你的域名或者 IP root /path/to/dist; // 填写打包后的文件路径 index index.html; location / { try_files $uri $uri/ /index.html; } } ``` 4. 重启 Nginx 服务:执行 `sudo service nginx restart` 或者 `nginx -s reload` 命令,使 Nginx 配置文件生效。 Tomcat 部署步骤: 1. 安装 Tomcat:在服务器上安装 Tomcat,具体方法可以参考官方文档或者其他资料。 2. 部署后端应用:将后端应用的 war 包放入 Tomcat 的 webapps 目录下。 3. 启动 Tomcat执行 `startup.sh`(Linux)或者 `startup.bat`(Windows)启动 Tomcat 服务。 4. 配置 Tomcat 端口:如果 Tomcat 默认端口 8080 被占用,可以修改 Tomcat 的配置文件 server.xml,将端口号修改为其他未被占用的端口。 5. 配置 Tomcat 路径:如果后端应用的 war 包名称不是默认的 ROOT.war,可以在 Tomcat 的配置文件 server.xml 中添加如下配置: ``` <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <Context path="/myapp" docBase="/path/to/myapp.war"></Context> </Host> ``` 其中,path 属性填写访问路径,docBase 属性填写 war 包路径。 6. 验证部署:在浏览中访问后端应用的地址,检查是否能正常访问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值