一、Nginx的編譯安裝
#yum -y install pcre-devel openssl-devel 安裝依賴包
下載軟件源碼包
#tar xf nginx-1.10.2.tar.gz -C /usr/src 解壓縮包
useradd -s /sbin/nologin -M www 創建程序用戶www
cd /usr/src/nginx-1.10.2 進入解壓目錄
./confingure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
http_stub_status_module 記錄nginx基本訪問狀態信息等的模塊 http_ssl_module 用於加密的http連接
make && make install 編譯安裝
ln -s /usr/local/nginx/sbin/* /usr/local/sbin 創建軟連接
/usr/local/nginx/sbin/nginx 啟動nginx
二、Nginx的主配置文件./nginx/conf/nginx.conf
1、 主配置文件的核心框架
全局配置指令 |
|
User |
配置worker進程的用戶用戶組 |
Worker_processes |
指定worker進程啟動的數量,這些進程用於處理客戶的所有連接。其數量選擇取決於服務器環境、磁盤子系統及網絡基礎設備。一般與CPU綁定的負載處理器核心的數量相同,並以1.5~2.0乘以這個數作為I/O密集型負載 |
Error_log |
是所有錯誤寫入的文件,如果在其他區段沒有設置該參數,那么這個日志 文件將記錄所有的錯誤。 |
pid |
記錄主進程ID的文件,這個設置將會覆蓋編譯時的默認配置。 |
use |
用於指示使用什么樣的連接方式。這個設置將會覆蓋編譯時的默認配置。 |
Worker_connections |
配置一個工作進程能夠接受並發連接的最大數。 |
2、Nginx的虛擬主機類型及配置實戰
這里的“主機”是指主配置文件中的server塊對外提供的虛擬主機,每一個server塊代表一個虛擬主機,以“域名”、“IP”、“端口號”做區分,虛擬主機可以分為與之相對應的三種類型。
2.1 基於域名的虛擬主機
配置不同域名的虛擬主機
修改配置文件后檢查配置文件,並重啟Nginx服務
創建網頁目錄與網站的首頁文件
mkdr -p /usr/local/nginx/html/server1/local1
添加本地映射,curl訪問測試
在本地PC添加映射瀏覽器訪問
三、Nginx Locations 代碼塊
Locations 定義如下:
locations [modifier] urii {...}
當一個請求進入時,uri 會被檢測匹配一個最佳的locations(下表中的修飾符(modifier)會影響locationds的處理)。
順序 |
匹配標識的location |
匹配說明 |
1 |
" location = / { " |
精確匹配 |
2 |
" location ^~ /images/ { " |
先進行字符串的前綴匹配,如果匹配到就不做正則匹配檢查 |
3 |
" loction ~* \.(gif | jpg | jpeg)$ { " |
正則匹配,*為不區分大小寫 |
4 |
" location /documents/ { " |
匹配常規字符串,模糊匹配,如果有正則檢查,正則優先 |
5 |
" location / { " |
所有location都不能匹配后的默認匹配原則 |
一般,當一個請求進入時,會與所有locations進行匹配,首先會進行精確匹配,若匹配不成功,將會進行字符串的前綴匹配,依次進行正則匹配、匹配常規字符串模糊匹配,若以上匹配都不成功,將會執行默認匹配。
四、Nginx訪問日志輪詢切割
默認情況下Nginx會把所有的訪問日志生成到一個指定的訪問日志文件access.log里,這樣時間長了會使得該日志太大,比便於日志的分析與處理,因此,有必要對Nginx日志,通過定時任務按規定時間進行切割,使其分成不同的文件保存。
創建輪詢切割腳本
通過定時任務每天凌晨00時執行一次腳本
00 00 * * * /bin/bash /server/scripts/cut_nginx_log.sh >/dev/null 2>&1
測試定時任務
修改系統時間
查看定時任務執行結果
五、Nginx rewrite
Nginx rewrite的主要功能也是實現URL地址重寫。Nginx的rewrite規則需要PCRE軟件的支持,即通過Perl兼容正則表達式語法進行規則匹配。默認參數編譯時,Nginx就會安裝支持rewrite的模塊,但是,也必須要有PCRE軟件的支持。
指令語法:rewrite regex replacement 【flag】;一個簡單的URL rewrite跳轉例子:
rewrite ^/(.*) http://www.baidu.com/$1 permanent;
rewrite為重寫參數,regex部分“^/(.*) http://www.baidu.com/$1” $1取正則()部分的值,即www, flag的值如下表:
六、訪問認證
1、創建密碼文件
# which htpasswd 如果沒有,yum安裝 #yum -y install httpd
# htpasswd -bc /usr/local/nginx/conf/htpasswd yunjisuan 123123
2、在配置文件里加入兩條配置信息
auth_basic "yunjisuan training";
auth_basic_user_file /usr/local/nginx/conf/htpasswd;
3、重啟服務、訪問驗證