帶你搞懂怎么基于Docker安裝Nginx搭建靜態(tài)服務(wù)器

本篇文章給大家?guī)砹岁P(guān)于怎么基于docker安裝nginx搭建靜態(tài)服務(wù)器的相關(guān)知識(shí),使用nginx作為靜態(tài)服務(wù)器是很常見的情況,下面主要就是講通過docker安裝管理我們的nginx,并配置ssl證書來開啟https訪問,希望對(duì)大家有幫助。

帶你搞懂怎么基于Docker安裝Nginx搭建靜態(tài)服務(wù)器

大家需要一臺(tái)服務(wù)器,靜態(tài)服務(wù)器配置需求不算很高,推薦1核2G及以上。

一、安裝 docker

linux服務(wù)器使用cURL下載快速安裝的shell腳本

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

下載完成后,可以ls命令查看一下。已經(jīng)存在的話,使用sh命令執(zhí)行這個(gè)腳本

sh get-docker.sh

注意如果不是root用戶,需要使用sudo su獲取超級(jí)管理員權(quán)限。

安裝完成后啟動(dòng)一下Docker Server

systemctl start docker

使用docker version命令能看到Client和Server就啟動(dòng)成功了。

二、使用 Docker 安裝 Nginx

1. 先運(yùn)行一次 nginx,為了拷貝容器內(nèi)配置文件到本地

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. 拷貝容器內(nèi)配置文件到本地

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

3. 刪除之前的容器

docker stop nginx docker rm nginx

4. 根據(jù)本地配置文件運(yùn)行新容器

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訪問,此時(shí)就可以把這個(gè)nginx當(dāng)作普通靜態(tài)服務(wù)器使用了。

其中/home/nginx中的幾個(gè)文件夾:

conf: nginx的配置文件,具體配置可以看官網(wǎng)

html: 放靜態(tài)資源,如html、cssJS

logs: 日志文件夾,訪問的日志可以在其中查看

改了配置文件,記得通過docker restart nginx重啟下nginx。

三、配置 SSL 證書開啟 HTTPS 訪問

1. 在云服務(wù)廠商申請(qǐng) SSL 證書

我是在騰訊云申請(qǐng)的SSL證書,提交申請(qǐng)資料了,會(huì)讓配置一個(gè)txt類型的域名解析,然后等待通過就行。

申請(qǐng)通過后,下載nginx服務(wù)器類型的證書。

帶你搞懂怎么基于Docker安裝Nginx搭建靜態(tài)服務(wù)器

2. 把證書解壓后上傳到證書文件夾

在conf/conf.d創(chuàng)建cert證書文件夾

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

把剛才下載的證書上傳到這個(gè)文件夾

3. 修改 nginx 配置開啟 HTTPS 訪問

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

寫入以下內(nèi)容

server {     #SSL 訪問端口號(hào)為 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;     #請(qǐng)按照以下協(xié)議配置     ssl_protocols TLSv1 TLSv1.1 TLSv1.2;     #請(qǐng)按照以下套件配置,配置加密套件,寫法遵循 openssl 標(biāo)準(zhǔn)。     ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;     ssl_prefer_server_ciphers on;     location / {     #網(wǎng)站主頁路徑。此路徑僅供參考,具體請(qǐng)您按照實(shí)際目錄操作。         root /usr/share/nginx/html;         index  index.html index.htm;     } }  server {         listen 80;         #填寫綁定證書的域名         server_name falser.top;         #把http的域名請(qǐng)求轉(zhuǎn)成https         return 301 https://$host$request_uri; }

需要改的地方:

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

ssl_certificate: .crt后綴的證書文件

ssl_certificate_key: .key后綴的證書私鑰文件

推薦學(xué)習(xí):《docker

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊10 分享