ssl(secure sockets layer 安全套接層),及其繼任者傳輸層安全(transport layer security,tls)是為網路通訊提供安全及資料完整性的一種安全協議。tls與ssl在傳輸層對網路連線進行加密。
1)認證使用者和伺服器,確保資料傳送到正確的客戶機和伺服器;
2)加密資料以防止資料中途被竊取;
3)維護資料的完整性,確保資料在傳輸過程中不被改變。
申請ssl證書:
**:www.wosign.com (沃通)
免費的:freessl.org
申請時需要驗證網域名稱、在dns解析中新增一條txt記錄。
配置ssl
[root@rice01 ~]# mkdir /etc/nginx/ssl/
[root@rice01 ~]# cd /etc/nginx/ssl/
[root@rice01 ssl]# vi bbsca // 將ca證書的內容拷貝到bbsca中
[root@rice01 ssl]# vi bbs.crt // 將證書內容拷貝到bbs.crt中
[root@rice01 ssl]# vi bbs.key // 將私鑰內容拷貝到bbs.key中
[root@rice01 ssl]# vi /etc/nginx/conf.d/bbs.riceyoung.com.conf
server $1 permanent;
}
執行命令:curl -k -h "host:bbs.riceyoung.com"
進行訪問測試。
nginx服務配置中,匹配php時需要定義php服務的tcp/ip位址及埠,如果nginx配置中php的fastcgi_pass
定義的內容與php服務的配置檔案監聽的tcp/ip位址及埠不一致,在訪問**時會出現502:
[root@rice01 conf.d]# cat bbs.riceyoung.com.conf
......
location ~ \.php$
......
[root@rice01 conf.d]# cat /usr/local/php-fpm/etc/php-fpm.d/www.conf
......
[www] // 定義php-fpm的pool name
......
user = php-fpm // 定義php服務的所屬主
group = php-fpm // 定義php服務的所屬組
......
listen = 127.0.0.1:9000 // 定義php服務的位址和埠,如果此處和bbs.riceyoung.com.conf中fastcgi_pass定義的內容不一致,訪問**時會出現502
......
;listen.owner = php-fpm // 定義呼叫服務的使用者
;listen.group = php-fpm // 定義呼叫服務的組
;listen.mode = 0660 // 定義socket許可權,此處被 ; 注釋掉了
[root@rice01 conf.d]# vi bbs.riceyoung.com.conf
......
location ~ \.php$
......
[root@rice01 conf.d]# vi /usr/local/php-fpm/etc/php-fpm.d/www.conf
......
listen = /tmp/www.socket // 除了定義位址和埠,也可以定義socket檔案,但必須和nginx配置檔案中的fastcgi_pass保持一致
......
listen.mode = 0666 // 定義socket許可權,也可以將listen.owner和listen.group定義為nginx,但一般不這樣操作,只需要修改許可權即可
......
[root@rice01 conf.d]# /usr/local/php-fpm/sbin/php-fpm -t // 檢查語法有沒有錯誤
[root@rice01 ~]# /etc/init.d/php-fpm restart // 重啟php服務,也可以reload過載
php-fpm的其它配置引數:
pm = dynamic // 定義php服務程序為動態模式,靜態為static
pm.max_children = 5 // 最大程序數
pm.start_servers = 2 // 啟動2個子程序
pm.min_spare_servers = 1 // 空閒時,最少不能少於1個子程序
pm.max_spare_servers = 3 // 空閒時,最多不能多於3個子程序
php_flag[display_errors] = off // 定義頁面訪問時是否顯示報錯資訊
php_admin_value[error_log] = /var/log/fpm-php.www.log // 定義錯誤日誌的路徑,如果使用此功能,還需要給/var/log/fpm-php.www.log設定許可權
php_admin_flag[log_errors] = on // 定義記錄錯誤資訊的開關
php_admin_value[error_reporting] = e_all // 定義錯誤等級,all或notice
slowlog = /tmp/php.slow // 定義php指令碼執行慢的日誌路徑
request_slowlog_timeout = 1 // 定義執行慢的php指令碼超過1s的響應時間就記錄日誌
php_admin_value[open_basedir] = /data/wwwroot/bbs.riceyoung.com:/tmp // 定義乙個php-fpm服務只能在這個路徑下活動
補充:
在實際的生產環境中,需要禁止phpinfo,防止資訊洩露:
# vi /usr/local/php-fpm/etc/php.ini
disable_functions = phpinfo
定義多個pool:
在定義多個pool時,要修改php的子配置檔案和nginx的子配置檔案,定義pool name、定義listen監聽的ip或socket檔案、定義open_basedir。
無論是修改php的配置或是修改nginx的配置,修改後都需要重啟服務或過載服務。
Linux學習筆記(1月14日)
筆記語法格式 markdown 打卡方法 開通自己的部落格 csdn oschina 51cto 將每日學習筆記寫一篇博文,將博文連線貼上到打卡日記裡進行打卡操作。密碼管理工具 keepass 可利用keepass 堅果雲實現pc端 手機端的密碼庫同步。網域名稱 1.1 網域名稱的申請 購買 xin...
Linux學習筆記(2月27日)
檢視網路狀況 netstat 用於列出系統上所有的網路套接字連線情況,包括tcp,udp以及unix套接字,另外它還能列出處於監聽狀態 即等待接入請求 的套接字。如果想確認系統上的服務有沒有起來,可以檢視相應的埠有沒有開啟。狀態說明 listen 偵聽來自遠方的tcp埠的連線請求 syn sent ...
11月14日筆記
namespace 命名空間 用於解決類重名問題,可以看做 類的資料夾 如果 和被使用的類在乙個namespace則不需要using。在不同命名空間下的類呼叫有兩種方法 寫全稱 命名空間.類名 先using引用命名空間,再呼叫 using可以宣告namespace的引入,還可以實現非託管資源的釋放,...