- 進程相關(guān)配置
worker_processes auto; #nginx進程數(shù),建議按照CPU數(shù)目來指定
worker_rlimit_nofile 65535; #一個Nginx 進程打開的最多文件描述符數(shù)目
worker_connections 65535; #每個進程允許的最多連接數(shù)
- 監(jiān)聽端口
server {
listen 80; #監(jiān)聽端口
server_name www.test.com; #域名信息
location / {
root html; #網(wǎng)站根目錄,一般是在和conf同級目錄
index index.html index.htm; #默認首頁類型
deny 192.168.1.10; #禁止訪問的ip地址,可以為all
allow 192.168.1.11; #允許訪問的ip地址,可以為all
}
}
域名匹配的四種寫法
精確匹配:server_name www.test.com;
左側(cè)通配:server_name .test.com ;
右側(cè)統(tǒng)配:server_name www.test. ;
正則匹配:server_name ~^www.test.*$ ;
匹配優(yōu)先級:精確匹配 > 左側(cè)通配符匹配 > 右側(cè)通配符匹配 > 正則表達式匹配
- Nginx 日志
error_log /var/log/nginx/error.log warn;
#配置錯誤日志的級別及存儲目錄
events {
worker_connections 1024; #進程連接數(shù)
}
http {
..................
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
#配置日志的模式
access_log /var/log/nginx/access.log main;
#配置訪問日志存儲目錄
}
- http 相關(guān)的配置
http {
sendfile on #高效傳輸文件的模式 一定要開啟
keepalive_timeout 65 #客戶端服務(wù)端請求超時時間
}
- 靜態(tài)資源配置
server {
listen 80;
server_name test.com;
location /static {
root /var/www/static;
}
}
- 反向代理
http {
.............
upstream portal_server{
127.0.0.1:8081;
}
upstream base_server{
127.0.0.1:8082;
}
upstream order_server{
127.0.0.1:8083;
}
server {
#默認指向portal_server
location / {
proxy_pass http://portal_server;
}
location /base_server/{
proxy_pass http://base_server;
}
location /order_server/ {
proxy_pass http://order_server;
}
}
}
| 符號 | 說明 |
|---|---|
| ~ | 正則匹配,區(qū)分大小寫 |
| ~* | 正則匹配,不區(qū)分大小寫 |
| ^~ | 普通字符匹配,如果該選項匹配,則,只匹配改選項,不再向下匹配其他選項 |
| = | 普通字符匹配,精確匹配 |
| @ | 定義一個命名的 location,用于內(nèi)部定向,例如 error_page,try_files |
匹配優(yōu)先級
路徑匹配,優(yōu)先級:(跟 location 的書寫順序關(guān)系不大)
- 精確匹配:=前綴的指令嚴(yán)格匹配這個查詢。如果找到,停止搜索。
- 普通字符匹配:所有剩下的常規(guī)字符串,最長的匹配。如果這個匹配使用^?前綴,搜索停止。
- 正則匹配:正則表達式,在配置文件中定義的順序,匹配到一個結(jié)果,搜索停止;
- 默認匹配:如果第3條規(guī)則產(chǎn)生匹配的話,結(jié)果被使用。否則,如同從第2條規(guī)則被使用。
精確匹配>普通字符匹配>正則匹配>默認匹配
- 負載均衡
upstream server_pools {
server 192.168.1.11:8081 weight=1;
server 192.168.1.12:8081 weight=2;
server 192.168.1.13:8081 weight=7;
#weigth參數(shù)表示權(quán)值,權(quán)值越高被分配到的幾率越大
}
server {
listen 80;
server_name test.com;
location / {
proxy_pass http://portal_server;
}
}
- 代理相關(guān)的其它配置
proxy_connect_timeout 90; #nginx跟后端服務(wù)器連接超時時間(代理連接超時)
proxy_send_timeout 90; #后端服務(wù)器數(shù)據(jù)回傳時間(代理發(fā)送超時)
proxy_read_timeout 90; #連接成功后,后端服務(wù)器響應(yīng)時間(代理接收超時)
proxy_buffer_size 4k; #代理服務(wù)器(nginx)保存用戶頭信息的緩沖區(qū)大小
proxy_buffers 4 32k; #proxy_buffers緩沖區(qū)
proxy_busy_buffers_size 64k; #高負荷下緩沖大?。╬roxy_buffers*2)
proxy_temp_file_write_size 64k; #設(shè)定緩存文件夾大小
proxy_set_header Host $host;
proxy_set_header X-Forwarder-For $remote_addr; #獲取客戶端真實IP
- 重定向配置
location / {
return 404; #直接返回狀態(tài)碼
}
location / {
return 404 "pages not found";
#返回狀態(tài)碼 + 一段文本
}
location / {
return 302 /conten;
#返回狀態(tài)碼 + 重定向地址}
location / {
return https://www.test.com ;
#返回重定向地址
}