LNMP環境相關配置Nginx
Nginx配置:
1. 默認虛擬主機
Nginx的默認虛擬主機的概念和httpd的類似,第一個被nginx加載的虛擬主機就睡默認虛擬主機。不同的是,nginx可以標記默認虛擬主機,如果沒有標記則第一個就是默認的;
修改主配置文件nginx.conf,在結束符號 } 上面加入一行配置,如下:
include vhost/*.conf;
}
意思是/usr/local/nginx/conf/vhost/下面的所有以.conf結尾的文件都會加載,這樣我們只需把虛擬主機文件放在vhost目錄下就行了
創建測試文件:
echo "Nginx默認虛擬主機" > /data/nginx/default.com/index.html
2. 用戶認證
新建一個虛擬主機:
cd /usr/local/nginx/conf/vhost
vim test.com.conf
使用httpd的htpasswd命令:
windows下測試的效果:
對目錄進行用戶認證:
3. 域名重定向
server { listen 80; server_name test1.com test2.com; index index.htm index.html index.php; root /data/nginx/test1.com; # 域名重定向 if ($host != 'test1.com'){ rewrite ^/(.*)$ http://test1.com/$1 permanent; } }
4. Nginx的訪問日誌
Nginx日誌格式定義在配置文件裏:
vim test.com.conf,在server裏面添加一行內容即可!
nginx日誌切割需要編寫腳本實現:
vim /usr/local/sbin/nginx_log_rorate.log.sh #!/bin/bash d=`date -d "-1 day" +%Y%m%d` logdir="/data/logs" nginx_pid="/usr/local/nginx/logs/nginx.pid" cd $logdir for log in `ls *.log` do mv $log $log-$d done /bin/kill -HUP `cat $nginx_pid`
寫完腳本,還需要增加任務計劃:
0 0 * * * /bin/bash /usr/local/sbin/nginx_log_rorate.log.sh
5. 配置靜態文件不記錄日誌並添加過期時間
vim test.com.conf
查看日誌文件:(沒有記錄!)
6. Nginx防盜鏈
vim test.com.conf
測試:
7. 訪問控制(主允許192.168.159.131和127.0.0.1 訪問等!)
8. Nginx解析php(經常出現502錯誤!查看fastcgi_passwd是否和php-fpm服務監聽一致)
9. Nginx代理
vim /usr/local/nginx/conf/vhost/proxy.conf
或者這樣:
10. Nginx配置SSL
SSL工作流程:
瀏覽器發送一個https的請求給服務器;
服務器要有一套數字證書,可以自己制作(後面的操作就是阿銘自己制作的證書),也可以向組織申請,區別就是自己頒發的證書需要客戶端驗證通過,才可以繼續訪問,而使用受信任的公司申請的證書則不會彈出>提示頁面,這套證書其實就是一對公鑰和私鑰;
服務器會把公鑰傳輸給客戶端;
客戶端(瀏覽器)收到公鑰後,會驗證其是否合法有效,無效會有警告提醒,有效則會生成一串隨機數,並用收到的公鑰加密;
客戶端把加密後的隨機字符串傳輸給服務器;
服務器收到加密隨機字符串後,先用私鑰解密(公鑰加密,私鑰解密),獲取到這一串隨機數後,再用這串隨機字符串加密傳輸的數據(該加密為對稱加密,所謂對稱加密,就是將數據和私鑰也就是這個隨機字符串>通過某種算法混合在一起,這樣除非知道私鑰,否則無法獲取數據內容);
服務器把加密後的數據傳輸給客戶端;
客戶端收到數據後,再用自己的私鑰也就是那個隨機字符串解密;
HTTPS通信過程:
生成SSL密鑰對:
php-fpm配置:
1. php-fpm的pool
vim /usr/local/php-fpm/etc/php-fpm.conf
2. php-fpm的慢執行日誌
vim /usr/local/php-fpm/etc/php-fpm.d/www.conf
3. php-fpm定義open_basedir
php_admin_value[open_basedir]=/data/nginx/wap.com:/tmp/
4. php-fpm進程管理
pm = dynamic //動態進程管理,也可以是static
pm.max_children = 50 //最大子進程數,ps aux可以查看
pm.start_servers = 20 //啟動服務時會啟動的進程數
pm.min_spare_servers = 5 //定義在空閑時段,子進程數的最少數量,如果達到這個數值時,php-fpm服務會自動派生新的子進程。
pm.max_spare_servers = 35 //定義在空閑時段,子進程數的最大值,如果高於這個數值就開始清理空閑的子進程。
pm.max_requests = 500 //定義一個子進程最多處理的請求數,也就是說在一個php-fpm的子進程最多可以處理這麽多請求,當達到這個數值時,它會自動退出。
LNMP環境相關配置Nginx