centos8平台nginx服务配置打开文件限制max open files limits
一,nginx启动时提示打开文件数,ulimit的配置不起作用:
1,
2020/04/26 14:27:46 [notice] 1553#1553: getrlimit(RLIMIT_NOFILE): 1024:4096
用户可打开文件数
软限制是:1024
硬限制是: 4096
这个值太小,不适用于服务器用途
2,用root用户查看ulimit -n
[root@blog 1554]# ulimit -n
65535
检查limits.conf配置文件
[root@blog 1554]# cat /etc/security/limits.conf
limits.conf中有针对打开文件数的配置
* soft nofile 65535
* hard nofile 65535
可以看到不管ulimit命令还是配置文件,都做了打开文件数量的配置
3,确认当前进程是否有打开文件数量的限制?
用ps找到nginx的进程id:1554,查看master process进程的limits
[root@blog ~]# more /proc/1554/limits | grep 'open files'
Max open files 1024 4096 files
确实存在和ulimit中不一致的数量限制
为什么ulimit的配置不起作用?
说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest
对应的源码可以访问这里获取: https://github.com/liuhongdi/
说明:作者:刘宏缔 邮箱: 371125307@qq.com
二,ulimit配置不起作用的原因:
因为ulimit和limits.conf的配置只针对登录用户,
而对nginx这个systemd管理的服务不起作用,
服务的limit要在service文件中单独指定
三,配置nginx打开文件数量:
1,找到nginx的service文件
[root@blog 1554]# systemctl cat openresty.service
# /usr/lib/systemd/system/openresty.service
[Unit]
Description=The OpenResty Application Platform
After=syslog.target network.target remote-fs.target nss-lookup.target [Service]
Type=forking
PIDFile=/usr/local/openresty/nginx/logs/nginx.pid
ExecStartPre=/usr/local/openresty/nginx/sbin/nginx -t
ExecStart=/usr/local/openresty/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true [Install]
WantedBy=multi-user.target
2,编辑service文件,
[root@blog ~]# vi /usr/lib/systemd/system/openresty.service
在service段增加一行:
LimitNOFILE=65535
这样systemd就能了解到要对服务做的限制了
3,重启:
[root@blog ~]# systemctl daemon-reload
[root@blog ~]# systemctl stop openresty.service
[root@blog ~]# systemctl start openresty.service
4,查看日志看是否起作用:
[root@blog ~]# tail -100 /data/logs/nginxlogs/error.log
...
2020/04/26 14:36:22 [notice] 1651#1651: getrlimit(RLIMIT_NOFILE): 65535:65535
...
说明已经起作用
5,可以查看进程中限制信息看是否起作用:
找到进程id
[root@blog ~]# ps auxfww | grep nginx
root 1652 0.0 0.0 50412 3348 ? Ss 14:36 0:00 nginx: master process /usr/local/openresty/nginx/sbin/nginx
nginx 1653 0.0 0.0 81896 5908 ? S 14:36 0:00 \_ nginx: worker process
nginx 1654 0.0 0.0 81896 5908 ? S 14:36 0:00 \_ nginx: worker process
nginx 1655 0.0 0.0 81896 5908 ? S 14:36 0:00 \_ nginx: worker process
nginx 1656 0.0 0.0 81896 5908 ? S 14:36 0:00 \_ nginx: worker process
我们查看pid 1652的打开文件限制:
[root@blog ~]# more /proc/1652/limits | grep 'open files'
Max open files 65535 65535 files
可以看到修改已经生效
四,查看nginx的版本
[root@blog ~]# /usr/local/openresty/nginx/sbin/nginx -v
nginx version: openresty/1.15.8.2
五,查看centos的版本
[root@blog ~]# cat /etc/redhat-release
CentOS Linux release 8.0.1905 (Core)
centos8平台nginx服务配置打开文件限制max open files limits的更多相关文章
- Nginx 核心配置-检测文件是否存在
Nginx 核心配置-检测文件是否存在 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. try_files会按顺序检查文件是否存在,返回第一个找到的文件或文件夹(结尾加斜线表示为文件 ...
- Nginx如何配置静态文件直接访问
其实前面在这篇文章Nginx之动静分离中已经提到过如何配置静态文件直接访问,今天突然再写是因为之前写的不够完善,所以这一篇文章你可以理解为是在前一个基础上的扩展. 之所以下午临时想到这个,是因为之前搭 ...
- nginx服务配置---php服务接入
前言: 最近要搭建一个内部的wiki系统, 网上搜了一圈, 也从知乎上搜集了一些大神的评价和推荐. 重点找了几个开源的wiki系统, 不过发现他们都是采用php来实现的. 于是乎需要配置php环境, ...
- 【Linux】nginx服务配置
一. 部署LNMP环境 准备工作 Linux系统准备 设置IP 关闭防火墙 yum源配置 安装: 传输软件包 1. tar -zxvf lnmp1.2-full.tar.gz cd lnmp1.2-f ...
- 自动分割nginx服务的日志文件
nginx服务每天都会产生大量的日志信息,时间一长导致日志文件容量很大,会影响系统性能.通过以下shell代码,配合crontab定时执行可实现nginx日志定时分割的功能. #!/bin/bash ...
- 初识 Nginx服务配置
Nginx 是一个免费的,开源的,高性能的HTTP服务器和反向代理,以及IMAP / POP3代理服务器. Nginx 以其高性能,稳定性,丰富的功能,简单的配置和低资源消耗而闻名.很多高知名度的网站 ...
- day09 samba、nginx服务配置
samba 1.环境准备 [root@localhost ~]# iptables -F #清除防火墙配置 [root@localhost ~]# systemctl stop firewalld # ...
- 打杂程序员之nginx服务配置
现在公司要在服务器上多加个网站用同一个nginx服务器,而且都是公用80端口. 因为服务器上跑着好几个网站了,所以配置文件配置完成时候要检测一下能不能用,用nginx -t:最好不要直接杀死nginx ...
- CentOS8平台nginx日志的定时切分
一,编写bash脚本: [root@yjweb crontab]# vi split_nginx_logs.sh 代码: #!/bin/bash # 备份nginx的日志 # 昨天的日期 file_d ...
随机推荐
- 抓包工具Burp Suite安装步骤(待补充)
Burp Suite V2.1(破解版)安装步骤:(可以自行下载破解版或汉化版) 百度网盘下载地址: 链接:https://pan.baidu.com/s/1bU5JME3OsEsXrSirTdesR ...
- linux如何把普通用户添加到sudo组
sudo原理:运行命令时,系统检查/etc/sudoers 配置文件,看这个用户是否有执行sudo的权限,如果有权限,系统要求输入用户自己的密码,如果密码输入正确,系统会以root身份运行 passw ...
- [LeetCode] 22. 括号生成(回溯/DP)
题目 给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合. 例如,给出 n = 3,生成结果为: [ "((()))", "(()( ...
- EasyCode插件使用及模板参考
EasyCode插件使用及模板参考 1.介绍安装 Easycode是idea的一个插件,可以直接对数据的表生成entity.controller.service.dao.mapper无需任何编码,简单 ...
- pycharm2020.2破解版教程激活码支持Windows Linux Mac系统-中关村老大爷
听说很多朋友想要PyCharm专业版2020.2的破解教程.现在来了,亲测破解成功.支持mac linux windows系统.本教程提供官方安装包.激活码和注册补丁. 本教程仅供学习和讨论,禁止商业 ...
- hystrix(3) 熔断器
讲完metrics我们就来了解一下熔断器的执行情况,熔断器的判断取决metrics数据. hystrix在执行命令前需要经过熔断器判断,如果服务被熔断,则执行fallback流程,熔断判断逻辑如下: ...
- 搞 Java 的年薪 40W 是什么水平?
文章首发于[陈树义的博客],点击跳转到原文https://www.cnblogs.com/chanshuyi/p/how_to_earn_400_thousand_per_year.html 我 20 ...
- Redis学习(五)Redis知识点总结
一.基础概念 Q:什么是 Redis? 定义:Redis 是完全开源免费基于内存亦可持久化的,遵守 BSD 协议,是一个高性能的 key-value 数据库. 特点: 数据的持久化 :可以将内存中的数 ...
- Python爬取股票信息,并实现可视化数据
前言 截止2019年年底我国股票投资者数量为15975.24万户, 如此多的股民热衷于炒股,首先抛开炒股技术不说, 那么多股票数据是不是非常难找, 找到之后是不是看着密密麻麻的数据是不是头都大了? 今 ...
- Jaskson精讲第7篇-类继承关系下的JSON序列化与反序列化JsonTypeInfo
Jackson是Spring Boot(SpringBoot)默认的JSON数据处理框架,但是其并不依赖于任何的Spring 库.有的小伙伴以为Jackson只能在Spring框架内使用,其实不是的, ...