上一篇講了:CentOS7下安裝MySQL5.7nginx
服務器要部署項目,天然少不了對靜態文件處理十分優秀的代理服務器Nginx。因爲只是平常記錄,這裏就不講心靈歷程了... ...c++
# wget http://nginx.org/download/nginx-1.12.2.tar.gz
這裏選擇的是nginx的1.12.2穩定版,生產原則是越穩定越好,因此就沒選擇主線版本。正則表達式
# tar -zxvf nginx-1.12.2.tar.gz
tar.gz格式與tar格式解壓不一樣:一個參數是-zxvf,一個是-xvf,因爲tar.gz是使用gzip壓縮過的,因此參數有個z,這個值得注意。瀏覽器
# mv nginx-1.12.2 ../nginx1.12
以前移動文件老是用絕對路徑,並且移動和重命名分開作,仍是由於對命令不夠熟悉,告誡本身多去理解。服務器
因爲nginx是使用c寫的,咱們須要把他編譯。若是輸入gcc -v能看到版本信息,那能夠跳過這步,若是沒有,那輸入如下命令進行安裝:網絡
# yum install gcc-c++
nginx配置是使用正則表達式匹配配置,因此咱們還要安裝表達式解析庫session
# yum install -y pcre pcre-devel
咱們老是想讓本身的頁面被打開快一點,拋開網絡質量來講,就是讓咱們的頁面資源被請求時可以儘可能小一些,這時候gzip就排上用場了,而nginx的gzip的須要庫的支持ui
# yum install -y zlib zlib-devel
nginx對ssl加密證書也有比較好的支持加密
# yum install -y openssl openssl-devel
若是您跳過了步驟4.4,不須要ssl,那麼您使用默認配置就好.net
# cd ../nginx1.12 # ./configure
確認配置後,直接構建,而後安裝就行了
# make # make install
假如您安裝時無SSL要求,選擇的是默認配置,後來忽然想用SSL了,那您配置了nginx的ssl相關參數時,就會遇到錯誤:
nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf:xxx
這時候就須要修改配置了,
# cd /usr/local/nginx-1.12 // 進入到nginx安裝包目錄 # ./configure --prefix=/usr/local/nginx --with-http_ssl_module // 加上http的ssl支持模塊
修改完成以後,nginx就對https添加了支持了,而後咱們構建。
# make
而後覆蓋nginx以前的二進制文件(注意,make就能夠了,不須要make install)
# cp objs/nginx /usr/local/nginx/sbin // 注意您安裝nginx的實際目錄
此時會詢問是否覆蓋,輸入y贊成,開始覆蓋。若是提示文件繁忙,也能夠先去到nginx安裝目錄下sbin目錄把nginx先中止,再完成上述覆蓋操做。
而後咱們重啓nginx,配置好ssl就能夠正常使用了。
# cd ../nginx1.12 # ./configure \ --prefix=/usr/local/nginx --with-http_ssl_module // 加上http的ssl支持模塊
而後構建安裝,
# make # make install
以花生殼的SSL證書爲例,假設DNS解析已經配置好了,下載證書壓縮包,解壓獲得後綴爲.crt和.key兩個文件。爲了不配置路徑問題,能夠考慮直接移到nginx安裝目錄下的conf文件夾內,打開nginx.conf進行配置。
server { listen 443 ssl; server_name localhost; ssl on; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_certificate XXX-ca-bundle.crt; // 證書 ssl_certificate_key XXX.key; // 私鑰 ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; }
配置完後,使配置生效。
./nginx -s reload
使用瀏覽器訪問:
nginx配置簡述到這裏,若是錯誤,歡迎指出!謝謝