本篇文章給大家?guī)砹岁P于怎么基于docker安裝Nginx搭建靜態(tài)服務器的相關知識,使用nginx
作為靜態(tài)服務器是很常見的情況,下面主要就是講通過docker
安裝管理我們的nginx
,并配置ssl
證書來開啟HTTPS
訪問,希望對大家有幫助。
大家需要一臺服務器,靜態(tài)服務器配置需求不算很高,推薦1核2G
及以上。
一、安裝 Docker
linux
服務器使用curl
下載快速安裝的shell
腳本
curl -fsSL get.docker.com -o get-docker.sh
下載完成后,可以ls
命令查看一下。已經(jīng)存在的話,使用sh
命令執(zhí)行這個腳本
sh get-docker.sh
注意如果不是root
用戶,需要使用sudo su
獲取超級管理員權限。
安裝完成后啟動一下Docker Server
systemctl start docker
使用docker version
命令能看到Client
和Server
就啟動成功了。
二、使用 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. 根據(jù)本地配置文件運行新容器
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
當作普通靜態(tài)服務器使用了。
其中/home/nginx
中的幾個文件夾:
conf
: nginx
的配置文件,具體配置可以看官網(wǎng)
html
: 放靜態(tài)資源,如html、css、js
等
logs
: 日志文件夾,訪問的日志可以在其中查看
改了配置文件,記得通過docker restart nginx
重啟下nginx
。
三、配置 SSL 證書開啟 HTTPS 訪問
1. 在云服務廠商申請 SSL 證書
我是在騰訊云
申請的SSL
證書,提交申請資料了,會讓配置一個txt
類型的域名解析,然后等待通過就行。
申請通過后,下載nginx
服務器類型的證書。
2. 把證書解壓后上傳到證書文件夾
在conf/conf.d
創(chuàng)建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; #請按照以下協(xié)議配置 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 / { #網(wǎng)站主頁路徑。此路徑僅供參考,具體請您按照實際目錄操作。 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視頻教程》