## 關閉不需要的服務
## 優化寫磁盤操作
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