環(huán)境:docker + 騰訊云輕量應用服務器+騰訊云域名
準備:首先需要去騰訊云域名下載ssl證書文件,創(chuàng)建安全組開放443端口,服務器防火墻開放443端口;
如果上面操作都做好了,在nginx也配置了,但是還是有問題,那么就是你的nginx沒有映射443端口,博主這里就是踩了這個坑,話不多說,進入正題;
1.先修改nginx兩個配置文件,nginx.conf和default.conf
nginx.conf文件
user nginx;
#開啟的線程數(shù),一般跟邏輯CPU核數(shù)一致
worker_processes auto;
#定位全局錯誤日志文件,級別以notice顯示,還有debug,info,warn,error,crit模式,debug輸出最多,crir輸出最少,根據(jù)實際環(huán)境而定
error_log /var/log/nginx/error.log notice;
#指定進程id的存儲文件位置
pid /var/run/nginx.pid;
events {
#定義每個進程的最大連接數(shù),受系統(tǒng)進程的最大打開文件數(shù)量限制。
worker_connections 1024;
}
http {
#填寫您的證書文件名稱,例如:cloud.tencent.com_bundle.crt
ssl_certificate cloud.tencent.com_bundle.crt;
#填寫您的私鑰文件名稱,例如:cloud.tencent.com.key
ssl_certificate_key cloud.tencent.com.key;
server {
listen 443 ssl;
server_tokens off;
keepalive_timeout 5;
root /usr/share/nginx/html; #填寫您的網(wǎng)站根目錄
index index.php index.html;
server_name www.cloud.tencent.com; #填寫您的證書綁定的域名,例如:www.cloud.tencent.com
ssl_certificate cloud.tencent.com_bundle.crt; #填寫您的證書文件名稱,例如:cloud.tencent.com_bundle.crt
ssl_certificate_key cloud.tencent.com.key; #填寫您的私鑰文件名稱,例如:cloud.tencent.com.key
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # 可參考此 SSL 協(xié)議進行配置
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; #可按照此加密套件配置,寫法遵循 openssl 標準
ssl_prefer_server_ciphers on;
location ~* \.php$ {
fastcgi_pass 127.0.0.1:9000;
client_max_body_size 20m;
fastcgi_connect_timeout 30s;
fastcgi_send_timeout 30s;
fastcgi_read_timeout 30s;
fastcgi_intercept_errors on;
}
}
server {
listen 80;
#請?zhí)顚懡壎ㄗC書的域名
server_name www.cloud.tencent.com;
#把http的域名請求轉成https
return 301 https://$host$request_uri;
}
}
default.conf文件
server {
#偵聽80端口,如果強制所有的訪問都必須是HTTPs的,這行需要注銷掉
#listen 80;
listen 443 ssl;
server_name cloud.tencent.com; #域名
# 增加ssl
#ssl on; #如果強制HTTPs訪問,這行要打開
ssl_certificate /etc/nginx/conf.d/ssl/cloud.tencent.com_bundle.crt; #證書文件路徑
ssl_certificate_key /etc/nginx/conf.d/ssl/cloud.tencent.com.key; #key文件路徑
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
# 指定密碼為openssl支持的格式
ssl_protocols SSLv2 SSLv3 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5; # 密碼加密方式
ssl_prefer_server_ciphers on; # 依賴SSLv3和TLSv1協(xié)議的服務器密碼將優(yōu)先于客戶端密碼
# 定義首頁索引目錄和名稱
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
#重定向錯誤頁面到 /50x.html
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
?2.重新構建容器并啟動
這里一定要把映射端口443加進去,不然nginx無法監(jiān)聽。
docker run \
-p 443:443 \
-p 80:80 \
--name nginx \
-v /mydata/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /mydata/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /mydata/nginx/log:/var/log/nginx \
-v /mydata/nginx/html:/usr/share/nginx/html \
-d nginx:latest
參數(shù)說明
-name 給你啟動的容器起個名字,以后可以使用這個名字啟動或者停止容器
-p 映射端口,將docker宿主機的80端口和容器的80端口進行綁定
-v 掛載文件用的,
-m 200m 分配內存空間
-e TZ=Asia/Shanghai 設置時區(qū)
第一個-v 表示將你本地的nginx.conf覆蓋你要起啟動的容器的nginx.conf文件,
第二個-v 表示將日志文件進行掛載,就是把nginx服務器的日志寫到你docker宿主機的/home/docker-nginx/log/下面
第三個-v 表示的和第一個-v意思一樣的。
-d 表示啟動的是哪個鏡像
到這里再去訪問域名,應該就會轉跳到對應的網(wǎng)頁;
如果這里還不行,先檢查一下準備內是否都配置好了,如果還是不行,歡迎溝通。文章來源:http://www.zghlxwxcb.cn/news/detail-513047.html
?文章來源地址http://www.zghlxwxcb.cn/news/detail-513047.html
到了這里,關于docker中使用nginx配置騰訊云ssl證書,443端口無法連接的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!