## 关闭不需要的服务
## 优化写磁盘操作
Nginx每访问一次文件即会对Access Time进行更新
### 如何关闭Access Time
修改fstab在指定磁盘增加`noatime`和`nodiratime`属性。这样写如果要生效只能重启系统
使用命令重新挂在可以即时生效。
~~~
mount -o default,noatime,nodiratime -o remount /dev/mapper/centos-root /
~~~
## 优化资源限制
ulimit -n
单个用户对文件描述符的使用限制,即打开的文件数限制
ulimit -u
单个用户拥有的进程数限制
修改/etc/security/limits.conf中,这个生效需要重启系统
~~~
* soft nproc 65535
* hard nproc 65535
* soft nofile 65535
* hard nofile 65535
~~~
即时生效
~~~
ulimit -n 65535
ulimit -u 65535
~~~
## 优化TCP内核选项
~~~
net.ipv4.tcp_max_tw_buckets = 6000 # 设置timewait,默认值18000
net.ipv4.tcp_tw_recycle = 1 # 是否启动timewait快速回收,默认值0
net.ipv4.tcp_tw_reuse = 1 # 是否允许将TIME WAIT SOCKET重新用于TCP连接,默认值0
net.ipv4.ip_local_port_range = 1024 65000# 允许打开的端口范围
net.ipv4.tcp_syncookies = 1 # 默认值0,如果使用SYN队列溢出时,则使用cookies来处理
net.core.somaxconn = 32768 # web的listen函数会将net.core.somaxconn限制到128,因此这个值需要调整
net.ipv4.tcp_max_orphans = 3276800 # 默认值32768,不属于任何请求的套接字数量
net.ipv4.tcp_max_syn_backlog = 65536 # 尚未收到客户端确认信息的连接请求最大值
net.ipv4.tcp_timestamps = 0 # 默认值1,使用时间戳作为序列号,但在高速环境中应关闭
net.ipv4.tcp_syn_retries = 1 # 默认值5,内核放弃建立连接之前发送的SYN包数量
net.ipv4.tcp_synack_retries = 1 # 默认值5,TCP第2次握手,内核需要ACK前一个SYN,减小这个有利于避免DDOS攻击
net.ipv4.tcp_fin_timeout = 1 # 如果套接字由本端关闭,这个设置了FIN_WAIT-2状态的时间,FIN_WAIT-2的危险性小于FIN_WAIT-1,因为,FIN_WAIT-2最多只能占据1.5kb内存
net.ipv4.tcp_keepalive_time = 30 # 默认值7200,设置TCP发送keepalive消息的频度
~~~
## 优化Nginx服务器
### 关闭部分访问日志
### Nginx服务配置优化
~~~
worker_connections 65535
keepalive_timeout 60
client_header_buffer_size 8k # getconfig PAGESIZE获取页面大小
worker_rlimit_nofile 65535
~~~
- nginx的功能
- nginx常用变量
- Nginx内核模块
- Nginx的事件模块
- Nginx的HTTP模块
- Nginx的fastcgi
- nginx的proxy
- Upstream实现后台服务器集群
- 文件操作优化相关的配置
- Nginx模块管理和进程管理
- 模块管理
- 进程管理
- 针对Nginx的Linux系统优化
- Nginx如何处理一个请求
- nginx状态信息
- Nginx工具
- Nginx限制流量
- Nginx限制用户的并发连接数
- 配置FLV服务器
- Nginx访问控制
- Nginx自动索引
- Nginx网页压缩传输
- 控制Nginx如何记录日志
- Nginx改写响应
- Nginx重写
- 后台Nginx记录原始原始IP
- Nginx防盗链
- Nginx的https