CentOS7下安裝Nginx及配置SSL證書

上一篇講了:CentOS7下安裝MySQL5.7nginx

服務器要部署項目,天然少不了對靜態文件處理十分優秀的代理服務器Nginx。因爲只是平常記錄,這裏就不講心靈歷程了... ...c++

1.下載

# wget http://nginx.org/download/nginx-1.12.2.tar.gz

這裏選擇的是nginx的1.12.2穩定版,生產原則是越穩定越好,因此就沒選擇主線版本。正則表達式

2.解壓

# tar -zxvf nginx-1.12.2.tar.gz

tar.gz格式與tar格式解壓不一樣:一個參數是-zxvf,一個是-xvf,因爲tar.gz是使用gzip壓縮過的,因此參數有個z,這個值得注意。瀏覽器

3.移動文件夾並更名

# mv nginx-1.12.2 ../nginx1.12

以前移動文件老是用絕對路徑,並且移動和重命名分開作,仍是由於對命令不夠熟悉,告誡本身多去理解。服務器

4.安裝

4.1 安裝nginx準備環境-gcc

因爲nginx是使用c寫的,咱們須要把他編譯。若是輸入gcc -v能看到版本信息,那能夠跳過這步,若是沒有,那輸入如下命令進行安裝:網絡

# yum install gcc-c++

4.2 安裝nginx準備環境-pcre

nginx配置是使用正則表達式匹配配置,因此咱們還要安裝表達式解析庫session

# yum install -y pcre pcre-devel

4.3 安裝nginx準備環境-zlib

咱們老是想讓本身的頁面被打開快一點,拋開網絡質量來講,就是讓咱們的頁面資源被請求時可以儘可能小一些,這時候gzip就排上用場了,而nginx的gzip的須要庫的支持ui

# yum install -y zlib zlib-devel

4.4 安裝nginx準備環境-openssl(可選)

nginx對ssl加密證書也有比較好的支持加密

# yum install -y openssl openssl-devel

4.5 正式安裝

4.5.1 無SSL要求

若是您跳過了步驟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就能夠正常使用了。

4.5.2 有SSL要求

# cd ../nginx1.12

# ./configure \ --prefix=/usr/local/nginx --with-http_ssl_module // 加上http的ssl支持模塊

而後構建安裝,

# make

# make install

5 配置SSL

以花生殼的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配置簡述到這裏,若是錯誤,歡迎指出!謝謝

相關文章
相關標籤/搜索