【Https】阿里雲CentOS7 配置Nginx SSL開啓Https,看完還配不成功打我電話157......

前置條件

1. 買阿里雲服務器

2. 申請域名,綁定服務器並通過管局審覈

3. 申請SSL證書,得到證書後綁定域名

以上這些都不說了,網上教程很多,一般都錯不了

Nginx安裝與配置

關鍵是Nginx配置問題,不能錯,但凡錯一個字母,或者目錄路徑寫的不對,都會造成錯誤

1、yum -y install nginx 安裝Nginx,看到 Installed , Complete! 就算成功。

2、whereis nginx 查看 Nginx 安裝目錄,看到  /etc/nginx 就算成功。

3、XFTP進入阿里雲服務器 /etx/nginx 目錄下

① nginx.conf 文件

Nginx的配置文件,如果再其上下方你發現了  nginx.conf.default 文件,將default後綴文件刪除,因爲我們要把他配置到別的地方

下面是我正在運行的服務器上的 nginx.conf 

你需要做的是完全照搬,一字不改。

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log warn;
pid /run/nginx.pid;

events {
    worker_connections 1024;
}

http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;


    include /etc/nginx/conf.d/*.conf;   # 這句指定了去 /etc/nginx/conf.d/ 目錄下找配置文件
}

② conf.d 目錄

右鍵創建一個文件  default.conf 

通過第 ① 步的配置可以知道,這裏文件名前綴叫啥不重要,但必須是 .conf 後綴

內容如下,有些需要你自己配置的地方,具體看註釋

server {
  
  listen 443 ssl; # 監聽443,同時開啓ssl
  
  server_name  littlecurl.xyz; #寫你自己的域名
  
  root /home/shaohua;  #定義服務器的默認網站根目錄位置 ,寫你自己想要讓域名訪問到的文件存放的地方

  access_log  logs/nginx.access.log  main; # 寫死,設定本虛擬主機的訪問日誌

  
  ssl_certificate /etc/nginx/cert/2887152_littlecurl.xyz.pem;  # 寫你自己的,寫完之後再檢查一遍路徑是否正確,我就錯放了兩次才改對
  ssl_certificate_key /etc/nginx/cert/2887152_littlecurl.xyz.key; # 同上
  ssl_session_timeout 5m; # 寫死
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # 寫死
  ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;# 寫死
  ssl_prefer_server_ciphers on;# 寫死

  #默認請求,也就是url直接訪問你的域名,後面不加其他路徑
  location / {     
  root /home/shaohua;      
      #定義首頁索引文件的名稱
      index index.html; # 最好在你指定的目錄下放一個index.html 比如我的在 /home/shaohua/index.html,HTML內容簡單寫個<h1>Hello World</h1>即可
  }

  #靜態文件,nginx自己處理
  location ~ ^/(images|javascript|js|css|flash|media|static)/ {
      #過期30天,靜態文件不怎麼更新,過期可以設大一點,
      #如果頻繁更新,則可以設置得小一點。
      expires 30d;
  }

  #禁止訪問 .htxxx 文件
  #    location ~ /.ht {
  #    deny all;
  #}

}
server
{
  
  listen 80; # 80端口是http正常訪問的接口
  
  server_name littlecurl.xyz; # 寫你自己的域名
  
  rewrite ^(.*) https://$host$1 permanent; #寫死,在這裏,我做了https全加密處理,在訪問http的時候自動跳轉到https
}

③ cert 目錄

這裏是存放證書的地方

後續步驟

以上步驟都做好之後,可以進行 nginx -t 探測一下Nginx配置是否成功

探測成功後重啓nginx 服務

service nginx restart (這個命令等於 先 service nginx stop 再 service nginx start)

上面的命令也可以寫成 nginx -s reload  或者 (先 nginx -s stop 再 nginx)

 

常見問題

1、比如,證書實際路徑和配置路徑不一致,解決方法就是把文件放到配置的路徑下,或者配置成正確的文件路徑

2、比如,配置的存放日誌的路徑和文件不存在,解決方法就是按照配置的路徑手動創建目錄或文件,或者,配置一個存在的目錄或文件

3、感覺實際的效果和自己配置的不一致,解決方法就是,檢查一下是否存在nginx下載時默認的配置,存在,將其刪除即可。

4、Nginx無法重啓, pid 文件 no such file 或者 invalid pid Number 

出現以上情況有可能是pid被改動過,解決辦法就是

先 ps -ef | grep nginx

然後 kill 13186 (master進程號)

然後 nginx  重新開啓nginx

這時候再測試重啓就可以了

 

關於 服務器配置Nginx 開啓 SSL 這塊,如果一通流程走下來,還是沒成功,可以想辦法聯繫我,熟悉我博客的應該都能找到我的QQ號 :)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章