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 ...
随机推荐
- RocketMQ的发送模式和消费模式
前言 小伙伴们大家好啊,王子又来和大家一起闲谈MQ技术了. 通过之前文章的学习,我们已经对RocketMQ的基本架构有了初步的了解,那今天王子就和大家一起来点实际的,用代码和大家一起看看RocketM ...
- JVM内存溢出与内存泄漏
内存溢出与内存泄漏 内存溢出相对于内存泄漏来说,尽管更容易被理解,但是同样的,内存溢出也是引发程序崩溃的罪魁祸首之一. 由于GC一直在发展,所有一般情况下,除非应用程序占用的内存增长速度非常快,造成垃 ...
- C语言知识汇编
(20-) 1.局部变量:定义在大括号的变量是局部变量 作用域:从 定义变量到return或者遇到 } 结束为止 include <stdio.h> int main() { int nu ...
- 我还在生产玩 JDK7,JDK 15 却要来了!
自从 JDK9 之后,每年 3 月与 9 月 JDK 都会发布一个新的版本,而2020 年 9 月即将引来 JDK15. 恰巧 IDEA 每四五个月会升级一个较大的版本,每次升级之后都会支持最新版本 ...
- Oracle学习(十)Oracle定时任务
一.Oracle定时任务基础 简介 oracle job 是应用在数据库层面,用来定时执行存储过程或者 SQL 语句的定时器. 查询 --当前库中运行的 job SELECT t.* FROM dba ...
- Spring学习(三)--Spring的IOC
1.BeanFactory和FactoryBean BeanFactory是一个接口类,定义了IOC容器最基本的形式,提供了IOC容器所应该遵守的基本服务契约. FactoryBean是一个能产生或者 ...
- djano jwt 的使用
1.5 JWT:使用djangorestframework-jwt模块进行用户身份验证 安装: pip install djangorestframework-jwt 添加应用:pytho ...
- Centos-远程拷贝-scp
scp 依赖ssh协议,实现从哟个linux系统拷贝到另一个linux系统 格式 scp -P port localPath user@IP:targetPath # 如果拷贝的是文件则需要传递 -r ...
- three.js学习5_渲染器
THREE.WebGLRenderer WebGL Render 用WebGL渲染出你精心制作的场景 介绍 在之前的介绍中, 已经介绍过场景, 相机, 光源, 有了这些后, 就可以形成一个可观的三维展 ...
- 022 01 Android 零基础入门 01 Java基础语法 03 Java运算符 02 算术运算符
022 01 Android 零基础入门 01 Java基础语法 03 Java运算符 02 算术运算符 本文知识点:Java中的算术运算符 算术运算符介绍 算术运算符代码示例 注意字符串连接问题和整 ...