回答
收藏
分享
举报
stream模块代理至达梦数据库 ,请问关于nginx 的 keepalive_timeout 参数正确放置的位置在哪儿?参数写法是什么,我需要48小时的保持活动时间。请大侠给予修改
提问于2023-03-11 12:15

浏览 4.4k

文章标签

做了一个nginx server 端口访问8085 端口代理至达梦数据库的5236端口。

在windows笔记电脑的dm管理工具客户端连接nginx server 的  8085端口,可以访问达梦数据库的5236端口实例。可以执行数据库的sql。

但是现在有一个问题是: dm管理工具查询分析器,只要过10分钟左右没有活动。就需要重新连接dm数据库,重新连接接后又可继续使用dm数据库,失败提示:


总共1个语句正依次执行...

[执行语句1]:

select * from  GL_SJSQ where kjnd='2023' /*and userid='235'*/ and rolecode like 'BMFZR-%'

执行失败(语句1)

6001: 网络通信异常(重连)

1条语句执行失败


产生这个问题有二个方面的原因: 1. dm管理工具客户端至 nginx server 的 8085端口,nginx server至 达梦数据库的5236端口的这整条网络链路、网络连接需要设置为长连接(这是网络方面的设置,这方面的原因可以排除,因为和网络管理员已经沟通过此事,已经开放整个网络链路的各个网络设置的长连接。)

2. nginx的配置有问题。请问关于nginx的  keepalive_timeout 参数正确放置的位置在哪儿?参数写法是什么,我需要48小时的保持活动时间。请大侠给予修改。

下面是nginx.conf 文件的我从默认文件修改的地方,并且重新启动过nginx,还是会出现数据库从新连接的提示,我怀疑哪里修改得不对?应该怎么修改?

#add by mike    #这段是我加的,为了代理至达梦数据库的5236

stream {

       server {

               listen 8085;

               proxy_pass 10.223.199.103:5236 ;

               }

       }

#add end by mike #这段是我加的,为了代理至达梦数据库的5236


http {

   include       mime.types;

   default_type  application/octet-stream;


   #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '

   #                  '$status $body_bytes_sent "$http_referer" '

   #                  '"$http_user_agent" "$http_x_forwarded_for"';


   #access_log  logs/access.log  main;


   sendfile        on;

   #tcp_nopush     on;


   #keepalive_timeout  0;

   #keepalive_timeout  65;

# modify by mike

   keepalive_timeout   172800;      #这段是我改的。

# modify by mike end



已修改于2023-03-17 10:31



写下您的回答
发表回答
全部回答(0)

按点赞数排序

按时间排序

提问者
8730552hvtv
这家伙很懒还未留下介绍~
0
文章
1
问答
0
粉丝
相关问答

options请求?需要跨域访问? 

点赞 0
浏览 8.2k

sticky模块只能在linux下吧,win下没有。tomcat好像有个session复制吧,或者可以用共享session。

点赞 0
浏览 8.1k

没办法完全不受影响的,因为mirror是子请求,当子请求未结束时,主请求消耗的内存至少是无法释放的。你可以尝试在/mirror里,把超时时间大幅度调低,包括connect/read/send,再压下看看。

点赞 0
浏览 10.8k