第三章 nginx程序服務(wù)目錄結(jié)構(gòu)
/etc/logrotate.d/nginx 利用logrotate實現(xiàn)日志文件自動切割
/etc/nginx/nginx.conf 主配置文件
/etc/nginx/conf.d/default.conf擴(kuò)展配置文件
/etc/nginx/fastcgi_params 定義nginx接口方式
接口方式 fastcgi 對應(yīng)(php)
接口方式 uwsgi_params 對應(yīng)(python)
usr/sbin/nginx 程序命令文件
檢查配置文件語法是否正確 nginx -t
控制服務(wù)運(yùn)行狀態(tài) nginx(啟動服務(wù)) nginx -s stop/reload
查看軟件安裝配置信息 nginx -V
usr/share/nginx/ 站點目錄將網(wǎng)站頁面所有元素資源進(jìn)行整合,分類規(guī)范管理
/var/log/nginx/ 保存程序日志文件信息 (access.log error.log)
/var/cache/nginx 緩存功能存放緩存目錄 (查看數(shù)據(jù)信息是否真正緩存了)
nginx 配置文件
nginx配置文件分為主配置文件和擴(kuò)展配置文件
主配置文件配置各項具體參數(shù)
主配置文件: nginx.conf
配置文件路徑: /etc/nginx/nginx.conf
只看有內(nèi)容行: grep -v "^$" /etc/nginx/nginx.conf
user nginx; 指定worker進(jìn)程管理用戶(建議指定為虛擬用戶)
worker_processes 4; 指定worker進(jìn)程數(shù)量 進(jìn)程數(shù)越多并發(fā)處理能力越強(qiáng)
建議設(shè)置數(shù)值=CPU核數(shù) 在高并發(fā)下建議臨時設(shè)置數(shù)值=2*CPU核數(shù)
error_log /var/log/nginx/error.log warn; 配置錯誤日志保存路徑
pid /var/run/nginx.pid; 配置程序pid文件保存路徑
以上信息: nginx主區(qū)域配置信息
以下信息: nginx事件區(qū)域配置信息
events { 定義worker區(qū)域
worker_connections 1024; 定義一個worker進(jìn)程最大連接數(shù)
(建議小于系統(tǒng)打開文件連接數(shù)) ulimit -a查看系統(tǒng)打開文件最大數(shù)值
}
定義HTTP服務(wù)區(qū)域
http {
include /etc/nginx/mime.types; --- 包含其他配置文件信息 (定義能夠處理的媒體資源類型)
default_type application/octet-stream; --- 資源信息沒有擴(kuò)展名,默認(rèn)識別成什么資源類型
log_format main '$remote_addr - $remote_user [$time_local] "$request" ' 設(shè)置日志信息格式
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main; 配置日志保存路徑
sendfile on;
#tcp_nopush on;
keepalive_timeout 65; 是否開啟長鏈接功能(數(shù)值為0 就是開啟短鏈接功能)
#gzip on; 是否壓縮傳輸數(shù)據(jù)
include /etc/nginx/conf.d/*.conf; 加載擴(kuò)展配置文件路徑
}
擴(kuò)展配置文件基礎(chǔ)配置
擴(kuò)展文件配置信息:
/etc/nginx/conf.d/default.conf
[root@web02 conf.d]# cat default.conf
server {
listen 80; --- 指定服務(wù)監(jiān)聽端口號 默認(rèn)是80
server_name www.xxx.com; --- 配置網(wǎng)站域名信息
location / {
root /html/; --- 站點目錄信息
index index.html index.html; --- 指定首頁文件 首頁文件不存在,訪問網(wǎng)站會報403錯誤
error_page 404 500 502 503 504 /xxx.jpg; --- 優(yōu)雅顯示錯誤頁面配置
}
}
補(bǔ)充說明:
nginx進(jìn)程信息
master進(jìn)程: 控制nginx服務(wù)運(yùn)行狀態(tài)
worker進(jìn)程: 處理用戶訪問網(wǎng)站請求nginx配置文件語法規(guī)范
a 指令信息結(jié)尾必須有分號
b 括號信息必須成對出現(xiàn)nginx配置區(qū)域說明:
a) 主區(qū)域配置 配置錯誤日志 進(jìn)程信息 worker進(jìn)程用戶
b) 事件區(qū)域配置 配置worker進(jìn)程連接數(shù)信息
c) HTTP 區(qū)域 配置功能參數(shù) 優(yōu)化有關(guān)系
d) server 區(qū)域 配置網(wǎng)站功能參數(shù)
e) if 區(qū)域 用于匹配url區(qū)域
f) locatio 區(qū)域 用于匹配uri,定位到不同的處理方式上.( location 的匹配順序是“先匹配正則,再匹配普通”)
location匹配
location ~* /js/.*/\.js
以 = 開頭,表示精確匹配;如只匹配根目錄結(jié)尾的請求,后面不能帶任何字符串。
以^~ 開頭,表示uri以某個常規(guī)字符串開頭,不是正則匹配
以~ 開頭,表示區(qū)分大小寫的正則匹配;
以~* 開頭,表示不區(qū)分大小寫的正則匹配
以/ 開頭,通用匹配, 如果沒有其它匹配,任何請求都會匹配到
if格式匹配內(nèi)容 匹配變量 等
多用于匹配url
匹配 uri內(nèi)容帶有.jpg的訪問進(jìn)行跳轉(zhuǎn)
if ( $requset_uri ~* “.(jpg|xxx)$”) {
xxx內(nèi)容
}
系統(tǒng)打開文件數(shù)
程序運(yùn)行起來,程序會打開相應(yīng)文件 每打開一個便計做一個文件數(shù)
ulimit -a 查看最大文件數(shù)
如果打開系統(tǒng)文件數(shù)不足 會導(dǎo)致有些服務(wù)不能夠運(yùn)行
修改文件打開數(shù)最大值
echo '* - nofile 65535' >>/etc/security/limits.conf