nginx配置遇到的问题

nginx配置在项目中遇到的问题

不知道大家有没有遇到过这样的问题 就是你在本地测试的接口一点问题都没有但是你把项目上线之后 你的接口死活不通的情况 本来不想记录的但是发现每次出现这种问题自己找都得排查半天 都是nginx在作怪

  1. 批量添加

我有一次批量添加的时候在 比如添加1000条或者更多的时候在本地导入嘎嘎快一点问题都没有 但是上线到服务器之后 嘎嘎慢 可能是服务器的带宽也不高 然后每次需要去访问第三方接口 所以添加的时间超过了一分钟 每次到一分钟报错误 我甚至把后端前端超时时间都往上调 但是问题还是没解决 后面我仔细看了一下错误 是nginx报的 把下面的参数往上调之后问题解决了 不再报错了

        fastcgi_connect_timeout 60000;nginx与后端建立连接超时时间
        fastcgi_send_timeout 60000;nginx发送请求到后端的超时时间
        fastcgi_read_timeout 60000;nginx从后端到读取响应超时时间
        fastcgi_buffer_size 128k;后端请求头部缓冲区大小
        fastcgi_buffers 2 256k;后端读取响应缓冲区大小 1.数量2.大小
        fastcgi_busy_buffers_size 256k;缓存区的最大大小
        fastcgi_temp_file_write_size 256k;临时文件大小

2.批量导出

有一次导出数据的时候 前端提示500错误 在本地导出没问题 上线后提示 我还是刚跟领导汇报说没问题了 结果自己前脚刚说完 后脚就测试出了这个问题 请求是Post传参是json我以为我传参太大了 我以为psot有限制后面我发现我搞混了 get请求才有参数限制 Post请求没有限制

错误贴在这了

An error occurred. Sorry, the page you are looking for is currently unavailable. Please try again later. If you are the system administrator of this resource then you should check the error log for details. Faithfully yours, nginx. 
   

有的时候报413错误 我去网上找到的答案是请求正文参数限制 发现又是nginx的错误 :

nginx默认的header长度上线是4k 如果超过了这个值 就会出现500的错误

只需要设置四个值就可以解决该问题 :

http {  
    client_max_body_size 8m;  客户端请求大小
    client_body_buffer_size 16k;  客户端请求主体缓冲区大小
    client_header_buffer_size 1k;  客户端请求头缓冲区大小
    large_client_header_buffers 4 16k;  客户端请求头的大缓冲区数量和大小
}

这些设置可能因 Nginx 的版本而有所不同,建议查阅 Nginx 的文档以获取最新和详细的信息

顺便总结一下nginx常用命令
Linux nginx的启动重启关闭命令
nginx -s reload :修改配置后重新加载生效
nginx -s reopen :重新打开日志文件
nginx -t -c /path/to/nginx.conf 测试nginx配置文件是否正确

启动操作 -c参数指定了要加载的nginx配置文件路径

nginx -c /usr/local/nginx/conf/nginx.conf 

停止操作

nginx -s stop :快速停止nginx
quit :完整有序的停止nginx

其他的停止nginx 方式:
停止操作是通过向nginx进程发送信号来进行的

步骤1:查询nginx主进程号
ps -ef | grep nginx //找到master的编号就是主进程号
步骤2:发送信号
从容停止Nginx: kill -QUIT 主进程号
例如:kill -QUIT 16391 
快速停止Nginx: kill -TERM 主进程号 
强制停止Nginx: kill -9 主进程号 

另外, 若在nginx.conf配置了pid文件存放路径则该文件存放的就是Nginx主进程号,如果没指定则放在nginx的logs目录下。有了pid文 件,我们就不用先查询Nginx的主进程号,而直接向Nginx发送信号了,命令如下:

kill -信号类型'/usr/local/nginx/logs/nginx.pid'

平滑重启

如果更改了配置就要重启Nginx,要先关闭Nginx再打开?不是的,可以向Nginx 发送信号,平滑重启。
平滑重启命令:

kill -HUP 住进称号或进程号文件路径  

 或者使用 /usr/nginx/sbin/nginx -s reload  

注意,修改了配置文件后最好先检查一下修改过的配置文件是否正 确,以免重启后Nginx出现错误影响服务器稳定运行。判断Nginx配置是否正确命令如下:

nginx -t -c /usr/nginx/conf/nginx.conf  
或者 
/usr/nginx/sbin/nginx -t 

最后只想记录一下自己的遇到错误啦 如有错误请指正!!!

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值