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權限,避免后面操作時提示無權限 --restart=always //能夠使我們在重啟docker時,自動啟動相關容器
八、檢查nginx是否成功啟動
up運行中
訪問服務器,提示這個,就是成功啟動了
九、訪問失?。?/h2>
#看下nginx日志,有沒有報錯
docker logs nginx
#看下nginx日志,有沒有報錯 docker logs nginx
檢查下服務器的80/443端口都打開嗎?看下服務器安全組里面開了嗎?
到此這篇關于docker安裝nginx并配置ssl證書的方法步驟的文章就介紹到這了,更多相關docker nginx ssl內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Docker consul的容器服務更新與發(fā)現(xiàn)的問題小結(jié)
這篇文章主要介紹了Docker consul的容器服務更新與發(fā)現(xiàn),講解了服務注冊與發(fā)現(xiàn)的基本概念講解,本文給大家介紹的非常詳細,需要的朋友可以參考下2021-08-08gitlab-runner中搭建nvm、nrm以及優(yōu)化maven打包方式
文章描述了如何在GitLab Runner上配置NVM、NRM,并優(yōu)化Maven打包過程,通過上述配置和優(yōu)化,作者將Maven打包時間從三分鐘縮短到不到40秒2024-11-11Docker安裝RabbitMQ AMQP協(xié)議及重要角色
這篇文章主要為大家介紹了Docker安裝RabbitMQ AMQP協(xié)議和主要角色詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-05-05liunx內(nèi)存滿了,docker中overlay2爆表解決方案
這篇文章主要介紹了liunx內(nèi)存滿了,docker中overlay2爆表解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-08-08Docker Machine創(chuàng)建Azure虛擬主機
這篇文章主要為大家詳細介紹了Docker Machine創(chuàng)建Azure虛擬主機的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-06-06