前置條件
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號 :)