docker安裝nginx并配置ssl證書的方法步驟
一、準備SSL證書
騰訊云申請

阿里云申請

還有一步DNS驗證,因為我這邊已經(jīng)申請了證書,不好演示了。也挺簡單的,按照教程來就行了,在域名解析里面加一條DNS解析記錄,然后點擊驗證,通過了,就申請成功了,然后下載nginx版本的證書壓縮包,解壓上傳到服務器就可以了
*稍微需要注意下,騰訊云和阿里云的證書文件后綴有點不一樣,騰訊云是xx.crt和xx.key,阿里云是xx.pem和xx.key,都可以正常使用
二、下載最新nginx鏡像
docker pull nginx
三、新建幾個目錄,把nginx容器內(nèi)的配置文件掛載到主機上
mkdir -p /usr/local/nginx/{<!--{C}%3C!%2D%2D%20%2D%2D%3E-->conf,html,logs,ssl}這一步的目的是:1方便后期修改配置文件 2容器刪除后配置文件也會刪除,相當于多了個備份
四、啟動一個nginx臨時容器,把配置文件復制過來,然后刪除
#啟動一個nginx容器 docker run --name nginx -p 80:80 -d nginx
#復制配置文件 docker cp nginx:/etc/nginx/nginx.conf /usr/local/nginx/conf/ docker cp nginx:/etc/nginx/conf.d /usr/local/nginx
#復制完了,可以把這個容器刪了,先停止再刪除 docker stop nginx docker rm nginx
這一步是為了獲得正確的nginx配置文件格式
五、把SSL證書上傳到服務器
#上傳到這個目錄下面,ssl是我們剛才創(chuàng)建的目錄 /usr/local/nginx/ssl
六、修改nginx.conf配置文件,配置SSL證書
server {
listen 80;
#填寫綁定證書的域名
server_name _;
#把http的域名請求轉(zhuǎn)成https,相當于用戶訪問http也可以自動跳轉(zhuǎn)到https,避免出現(xiàn)網(wǎng)頁提示不安全
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name _;
#證書文件名稱
ssl_certificate_key /etc/nginx/ssl/xx.key;
#私鑰文件名稱 .crt和.pem都可以用
ssl_certificate /etc/nginx/ssl/xx.pem;
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;
root /usr/local/nginx/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
#首頁
location / {
index index.php index.html index.htm;
client_max_body_size 50m;
#limit_rate 100k; 限制下載速度
include fastcgi_params;
#rewrite ^.*$ /index.php$request_uri break;
#ThinkPhp訪問異??梢杂孟旅娴拇a
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
break;
}
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}*注意:雖然證書存放位置是/usr/local/nginx/ssl,但是配置里面要寫/etc/nginx/ssl而不是/usr/local/nginx/ssl,不然啟動會報錯,因為配置里面的絕對路徑,都是在nginx容器里面的地址,和主機里面的目錄地址是兩個東西,后面啟動目錄掛載的時候,是可以讀到證書的,不用擔心。
七、正式啟動nginx
docker run --name nginx -p 80:80 -p 443:443 \ -v /usr/local/nginx/html:/usr/share/nginx/html \ -v /usr/local/nginx/conf/nginx.conf:/etc/nginx/nginx.conf/ \ -v /usr/local/nginx/conf.d:/etc/nginx/conf.d/ \ -v /usr/local/nginx/logs:/var/log/nginx \ -v /usr/local/nginx/ssl:/etc/nginx/ssl \ --privileged=true -d --restart=always nginx
--name nginx //容器名稱 -p 80:80 -p 443:443 //將容器的80端口映射到服務器的80端口,將容器的443端口映射到服務器的443端口 -v aa:bb //將主機的aa目錄掛載到容器的bb --privileged=true //使用該參數(shù),container內(nèi)的root擁有真正的root權(quán)限,避免后面操作時提示無權(quán)限 --restart=always //能夠使我們在重啟docker時,自動啟動相關(guān)容器
八、檢查nginx是否成功啟動

up運行中

訪問服務器,提示這個,就是成功啟動了
九、訪問失???
#看下nginx日志,有沒有報錯 docker logs nginx
檢查下服務器的80/443端口都打開嗎?看下服務器安全組里面開了嗎?
到此這篇關(guān)于docker安裝nginx并配置ssl證書的方法步驟的文章就介紹到這了,更多相關(guān)docker nginx ssl內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
完美解決Windows下Docker Desktop 啟動失敗:從虛擬化報錯到成功運行的全流程
文章詳細介紹了在Windows上啟動Docker Desktop時遇到「Virtualization support not detected」和500內(nèi)部服務器錯誤的解決過程,涵蓋了硬件層面和軟件層面的排查和解決方法,感興趣的朋友跟隨小編一起看看吧2026-03-03
詳解docker部署SpringBoot及替換jar包的方法
這篇文章主要介紹了詳解docker部署SpringBoot及替換jar包的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-11-11
詳解Centos7 下建立 Docker 橋接網(wǎng)絡
本篇文章主要介紹了詳解Centos7 下建立 Docker 橋接網(wǎng)絡,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-01-01
docker容器增加或者修改容器映射端口的實現(xiàn)方法
在只有使用docker安裝的容器,沒有使用docker-compose或者其他客戶端工具,如果要增加或者修改容器端口,也是可以增加或者修改容器端口映射,本文給大家介紹了docker容器增加或者修改容器映射端口的實現(xiàn)方法,需要的朋友可以參考下2025-01-01

