作者:站长 发布于:2020-10-23 11:28 Friday 分类:随笔录
昨天在一台windwos Server下部署的网站,频繁出现数据库连接不上。
程序和数据库是分离再不同的Server.采用内网进行连接。一开始以为是因为数据库压力过大,去检查数据库所在的服务器发现并不是这个问题,并且数据库当前的进程也很低,连接数也不高,所以先排除了这个问题。
接着就回去看我部署程序的机器,一顿排查,依旧没发现问题,于是我就先关闭了部分的业务,发现部分业务关闭了之后,情况好转了,于是就在程序里面添加了一条 重连数据库的操作进去。填写好了之后开启刚刚关闭的业务,发现不一会问题依旧没得到解决。
我在程序服务器的命令行执行 netstat -an > tcp.txt 打印出了当前服务器在用的端口协议情况,反复了几次这个操作,发现去连接数据库服务器最大端口就是在5000,没有在高的了。看到这个情况之后就怀疑是不是端口数量不够,然后导致数据库连接不上,测试我关闭了部分业务就降低了连接次数,所以正常了,业务全部开启,连接数数据库的次数就提高了,最终因为端口不足,导致无法连接上数据库,所以报错了。
锁定这个问题之后,解决方案就好找了。只要开放更多端口就好了,同时把端口等待时间从默认的240秒缩短到30秒,提高端口的重复使用率即可
于是百度一顿搜索更重答案教程都有。众说纷纭。下面是我自己的做法:
打开服务器注册表进行修改,然后重启服务器。修改内容如下:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
新建一个Dword值,名称为:MaxUserPort 数据用二进制输入:50000(最高不超过65536),这个启用更多端口
在新建一个Dword值,名称为:TcpTimeWaitDelay 数据用二进制输入:30,这个是用来减少time_wait的时间,单位秒.
修改了注册表之后,重启服务器。
重启完成之后再neistat -an 看下当前的链接端口就可以看到效果了。
作者:站长 发布于:2020-10-16 16:32 Friday 分类:linux
今天在我自己的Nginx部署证书,发现一个奇怪的事情,同样的配置文件,有的服务器可以正常跑起来,有的却不行。
自己调试了一波,发现还是不行,于是就在网上找原因。
有人说是跟Nginx的版本有关系,于是我第一时间去查看我的Nginx版本。发现的确是不一样的版本。
在Nginx1.15版本之前,我的配置HTTPS服务是如下这样配置的。
listen 443;
server_name zqsctjt.com www.zqsctjt.com;
ssl on;
ssl_certificate /nginx/conf/ssl/abc.com.crt;
ssl_certificate_key /nginx/conf/ssl/abc.com.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
listen 443 ssl;
server_name zqsctjt.com www.zqsctjt.com;
ssl_certificate /nginx/conf/ssl/abc.com.crt;
ssl_certificate_key /nginx/conf/ssl/abc.com.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
作者:站长 发布于:2020-8-29 18:35 Saturday 分类:linux
1.工具:logrotate centos系统自带的一款工具,还是蛮方便的。
2.安装logrotate 【yum -y install logrotate crontabs】
3.工具目录:
/etc/logrotate.conf # 主配置文件
/etc/logrotate.d # 配置目录
4.创建任务实例:
实例参考:
--------------------------
#【需要切割的log存放目录】
/home/wwwlogs/*.log {
#【按照天进行切割操作】
daily
#【旧的日志保留周期数量】
rotate 181
【工具在运行期间,忽略所有错误】
missingok
#【dateext 切换后的日志文件会附加上一个短横线和YYYYMMDD格式的日期,没有这个配置项会附加一个小数点加一个数字序号.dateformat 配合dateext使用可以为切割后的日志加上YYYYMMDD格式的日期,如dateformat -%Y%m%d】
dateext
#【通过指定的权限,创建新的日志文件】
create 666 www www
#【旧日志的存放位置,必须和当前日志文件在同一个文件系统】
olddir /home/wwwlogs/log_backup
#【对旧文件对进行压缩】
compress
#【运行postrotate脚本,作用是在所有日志都轮转后统一执行一次脚本。如果没有配置这个,那么每个日志轮转后都会执行一次脚本】
sharedscripts
#【在logrotate转储之后需要执行的指令,例如重新启动 (kill -HUP) 某个服务!必须独立成行】
postrotate
if [ -f /usr/local/nginx/logs/nginx.pid ];then
kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`
fi
endscript
}
------------------------
启动命令:
logrotate /etc/logrotate.conf # 启动所有配置的日志管理
logrotate /etc/logrotate.d/xxx # 启动xxx服务的日志管理
logrotate -f /etc/logrotate.d/xxx # 强制生效,执行一次
logrotate -vf /etc/logrotate.d/xxx # 强制生效,执行一次,同时打印执行信息