記Nginx開啟網站Https

一、前言

loang loang ago,在前後端分離之後,這個專案一直都是採用的http,並且有打算說是配置Https。拖了那麼久終於在前陣子完成了,在這裡做一個簡要的記錄。

二、SSL證書

2。1、什麼是SSL證書

開啟Https是數字證書的一種,由受信任的數字證書機構頒發。在伺服器配置了SSL之後其訪問具有身份驗證和資料傳輸加密功能。

2。2、SSL證書如何獲取

SSL證書的獲取有諸多途徑,我這裡是用過騰訊雲免費申請的SSl證書。

附上相關資訊:

申請連結

記Nginx開啟網站Https

2。3、申請到後如何使用

證書檔案有以下幾種(以我申請的為例):

記Nginx開啟網站Https

以Nginx為例,配置Https分別需要資料夾中的以下檔案:

記Nginx開啟網站Https

三、Nginx

3。1、什麼是Nginx

借用網路上的一段話:

Nginx是一款

輕量級

Web

伺服器/

反向代理

伺服器及

電子郵件

(IMAP/POP3)代理伺服器,在BSD-like 協議下發行。

其特點是佔有記憶體少,

併發

能力強,事實上nginx的併發能力在同類型的網頁伺服器中表現較好

3。2、下載Nginx

在Nginx官網可以下載到你所需要的版本,然後解壓到伺服器上(Linux使用命令處理)

3。3、配置Nginx

Nginx的主要配置集中在他的Config檔案,下面附上我的相關配置,每一行都有其作用的說明:

########### 每個指令必須有分號結束。################## 配置使用者或者組,預設為nobody nobody。#user nobody;# 允許生成的程序數,設定值和cpu核心數一樣(預設1)worker_processes 2;# 錯誤日誌相關,# 制定日誌路徑,級別。這個設定可以放入全域性塊,http塊,server塊,# 級別以此為:debug|info|notice|warn|error|crit|alert|emerg#error_log logs/error。log;#error_log logs/error。log notice;#error_log logs/error。log info;#指定nginx程序執行檔案存放地址#pid logs/nginx。pid;events { # 最大連線數,預設為512 worker_connections 1024;}http { # 副檔名與檔案型別對映表 include mime。types; # 預設檔案型別,預設為text/plain default_type application/octet-stream; # access_log off; #取消服務日誌 # 自定義格式 #log_format main ‘$remote_addr - $remote_user [$time_local] “$request” ’ # ‘$status $body_bytes_sent “$http_referer” ’ # ‘“$http_user_agent” “$http_x_forwarded_for”’; # combined為日誌格式的預設值 #access_log logs/access。log main; # 允許sendfile方式傳輸檔案,預設為off,可以在http塊,server塊,location塊。 sendfile on; # 連線超時時間,預設為75s,可以在http,server,location塊。 keepalive_timeout 65; # 開啟快取配置 # proxy_cache_path 快取檔案路徑 # levels 設定快取檔案目錄層次;levels=1:2 表示兩級目錄 # keys_zone 設定快取名字和共享記憶體大小 # inactive 在指定時間內沒人訪問則被刪除 # max_size 最大快取空間,如果快取空間滿,預設覆蓋掉快取時間最長的資源。 proxy_cache_path /XA/nginx/cache levels=1:2 keys_zone=xaCache:20m max_size=50g inactive=1d; # 開啟gzip gzip on; # 啟用gzip壓縮的最小檔案,小於設定值的檔案將不會壓縮 gzip_min_length 1k; # gzip 壓縮級別,1-9,數字越大壓縮的越好,也越佔用CPU時間,後面會有詳細說明 gzip_comp_level 6; # 進行壓縮的檔案型別。javascript有多種形式。其中的值可以在 mime。types 檔案中找到。 gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png application/vnd。ms-fontobject font/ttf font/opentype font/x-woff image/svg+xml; # 是否在http header中新增Vary: Accept-Encoding,建議開啟 gzip_vary on; # 禁用IE 6 gzip gzip_disable “MSIE [1-6]\。”; # 設定壓縮所需要的緩衝區大小 gzip_buffers 4 16k; # 設定gzip壓縮針對的HTTP協議版本 gzip_http_version 1。0; server { # 監聽埠 listen 80; # 監聽地址 server_name guangmuhua。com; # 重定向 return 301 https://$server_name$request_uri; location / { # 允許cros跨域訪問 add_header ‘Access-Control-Allow-Origin’ *; # 代理轉發 proxy_pass http://guangmuhua。com:8080; } # 匹配以/api/開頭的請求。正則匹配,~為區分大小寫,~*為不區分大小寫。 location /api { # 允許cros跨域訪問 add_header ‘Access-Control-Allow-Origin’ *; # 代理轉發 proxy_pass https://guangmuhua。com:9001; } # 快取靜態資原始檔 location ~* ^。+\。(css|js|ico|gif|jpg|jpeg|png)$ { log_not_found off; # 關閉日誌 access_log off; # 快取時間7天 expires 7d; # 源伺服器 proxy_pass http://guangmuhua。com:8080; # 指定上面設定的快取區域 proxy_cache xaCache; # 快取過期管理 proxy_cache_valid 200 302 1d; proxy_cache_valid 404 10m; proxy_cache_valid any 1h; proxy_cache_use_stale error timeout invalid_header updating http_500 http_502 http_503 http_504; } } # HTTPS server server { # 監聽埠,開啟HTTP2 listen 443 ssl http2; # 監聽地址 server_name guangmuhua。com; # SSL正式和秘鑰 ssl_certificate guangmuhua。crt; ssl_certificate_key guangmuhua。key; # 儲存session引數的快取大小及過期時間 ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; # SSL加密套件 ssl_ciphers HIGH:!aNULL:!MD5; # 是否由伺服器決定採用哪種加密演算法 ssl_prefer_server_ciphers on; location / { # 允許cros跨域訪問 add_header ‘Access-Control-Allow-Origin’ *; # 代理轉發 proxy_pass http://guangmuhua。com:8080; } # 匹配以/api開頭的請求 location /api { # 允許cros跨域訪問 add_header ‘Access-Control-Allow-Origin’ *; # 代理轉發 proxy_pass https://guangmuhua。com:9001; } # 快取靜態資原始檔 location ~* ^。+\。(css|js|ico|gif|jpg|jpeg|png)$ { log_not_found off; # 關閉日誌 access_log off; # 快取時間7天 expires 7d; # 源伺服器 proxy_pass http://guangmuhua。com:8080; # 指定上面設定的快取區域 proxy_cache xaCache; # 快取過期管理 proxy_cache_valid 200 302 1d; proxy_cache_valid 404 10m; proxy_cache_valid any 1h; proxy_cache_use_stale error timeout invalid_header updating http_500 http_502 http_503 http_504; } }}

四、Nginx的啟停

到Niginx的根目錄下:

啟動: start nginx

停止: nginx -s stop