帶你搞懂怎麼基於Docker安裝Nginx搭建靜態伺服器

2022-02-15 19:00:23
本篇文章給大家帶來了關於怎麼基於安裝Nginx搭建靜態伺服器的相關知識,使用nginx作為靜態伺服器是很常見的情況,下面主要就是講通過docker安裝管理我們的nginx,並設定ssl證書來開啟HTTPS存取,希望對大家有幫助。

大家需要一臺伺服器,靜態伺服器設定需求不算很高,推薦1核2G及以上。

一、安裝 Docker

linux伺服器使用curl下載快速安裝的shell指令碼

curl -fsSL get.docker.com -o get-docker.sh

下載完成後,可以ls命令檢視一下。已經存在的話,使用sh命令執行這個指令碼

sh get-docker.sh

注意如果不是root使用者,需要使用sudo su獲取超級管理員許可權。

安裝完成後啟動一下Docker Server

systemctl start docker

使用docker version命令能看到ClientServer就啟動成功了。

二、使用 Docker 安裝 Nginx

1. 先執行一次 nginx,為了拷貝容器內組態檔到本地

docker run -d -p 80:80 --name nginx \
 -v /home/nginx/html:/usr/share/nginx/html \
 -v /home/nginx/logs:/var/log/nginx \
 nginx:latest

2. 拷貝容器內組態檔到本地

docker container cp nginx:/etc/nginx /home/nginx/
cd /home/nginx
mv nginx conf

3. 刪除之前的容器

docker stop nginx
docker rm nginx

4. 根據本地組態檔執行新容器

docker run -d -p 80:80 -p 443:443 --name nginx \
 -v /home/nginx/conf:/etc/nginx \
 -v /home/nginx/logs:/var/log/nginx \
 -v /home/nginx/html:/usr/share/nginx/html \
 nginx:latest

如果不需要設定ssl證書開啟https存取,此時就可以把這個nginx當作普通靜態伺服器使用了。

其中/home/nginx中的幾個資料夾:

conf: nginx的組態檔,具體設定可以看官網

html: 放靜態資源,如html、css、js

logs: 紀錄檔資料夾,存取的紀錄檔可以在其中檢視

改了組態檔,記得通過docker restart nginx重新啟動下nginx

三、設定 SSL 證書開啟 HTTPS 存取

1. 在雲服務廠商申請 SSL 證書

我是在騰訊雲申請的SSL證書,提交申請資料了,會讓設定一個txt型別的域名解析,然後等待通過就行。

申請通過後,下載nginx伺服器型別的證書。

image.png

2. 把證書解壓後上傳到證書資料夾

conf/conf.d建立cert證書資料夾

cd /home/nginx/conf/conf.d
mkdir cert

把剛才下載的證書上傳到這個資料夾

3. 修改 nginx 設定開啟 HTTPS 存取

vi /home/nginx/conf/conf.d/default.conf

寫入以下內容

server {
    #SSL 存取埠號為 443
    listen 443 ssl;
    #填寫繫結證書的域名
    server_name 0101.ml;
    #證書檔名稱
    ssl_certificate /etc/nginx/conf.d/cert/0101.ml_bundle.pem;
    #私鑰檔名稱
    ssl_certificate_key /etc/nginx/conf.d/cert/0101.ml.key;
    ssl_session_timeout 5m;
    #請按照以下協定設定
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    #請按照以下套件設定,設定加密套件,寫法遵循 openssl 標準。
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;
    location / {
    #網站主頁路徑。此路徑僅供參考,具體請您按照實際目錄操作。
        root /usr/share/nginx/html;
        index  index.html index.htm;
    }
}

server {
        listen 80;
        #填寫繫結證書的域名
        server_name falser.top;
        #把http的域名請求轉成https
        return 301 https://$host$request_uri;
}

需要改的地方:

server_name: 改為自己的域名(兩處)

ssl_certificate: .crt字尾的證書檔案

ssl_certificate_key: .key字尾的證書私鑰檔案

推薦學習:《》

以上就是帶你搞懂怎麼基於Docker安裝Nginx搭建靜態伺服器的詳細內容,更多請關注TW511.COM其它相關文章!