环境:docker + 云服务器+域名
准备:下载ssl证书文件,安全组开放443端口,nginx容器映射443端口(切记!!!我就是这里忘记配置, 结果弄了好久);
如果上面操作都做好了,在nginx也配置了,但是还是有问题,那么就是你的nginx没有映射443端口,博主这里就是踩了这个坑,话不多说,进入正题;
1.根据参照官方文档, 修改nginx配置文件(nginx.conf)
nginx.conf 例子:
user nginx;
#开启的线程数,一般跟逻辑CPU核数一致
worker_processes auto;
#定位全局错误日志文件,级别以notice显示,还有debug,info,warn,error,crit模式,debug输出最多,crir输出最少,根据实际环境而定
error_log /var/log/nginx/error.log notice;
#指定进程id的存储文件位置
pid /var/run/nginx.pid;
events {
#定义每个进程的最大连接数,受系统进程的最大打开文件数量限制。
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; #填写您的网站根目录
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 协议进行配置
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;
#请填写绑定证书的域名
server_name www.cloud.tencent.com;
#把http的域名请求转成https
return 301 https://$host$request_uri;
}
}
2.重新构建容器并启动
这里一定要把映射端口443加进去,不然nginx无法监听。
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
到这里再去访问域名,应该就会转跳到对应的网页;文章来源:https://www.toymoban.com/news/detail-730103.html
如果这里还不行,先检查一下准备内是否都配置好了,如果还是不行,欢迎沟通。文章来源地址https://www.toymoban.com/news/detail-730103.html
到了这里,关于docker中使用nginx配置ssl证书,443端口无法连接的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!