下载和上传证书
首先先把证书下载下来,我是在阿里云开通的免费证书。 然后用ftp传到服务器上面
创建容器和修改配置文件
我已经创建与运行了这个容器,现在需要把证书重新挂载到nginx中,所以需要先停止运行以及删除了这个nginx容器,先docker stop containerName再docker rm containerName 然后就是构建容器并且挂载目录了,这里注意要多开一个端口443,还有就是我的服务器是阿里云的所以得在后台添加安全组开启443的端口
docker run -d --name=my-nginx -p 80:80 -p 443:443 -v/home/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v/home/docker/nginx/ssl:/etc/nginx/ssl -v/home/docker/nginx/wwwroot:/usr/share/nginx/html -v/home/docker/nginx/logs/error.log:/var/log/nginx/error.log nginx:latest
最后就是修改配置文件了,我修改的内容如下,也就是在原来的基础上再添加一个server节点,配置完重启以下就好了
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
upstream taobao {
server 172.16.68.58:8088 weight=5;
}
upstream blog {
server 172.16.68.58:8080 weight=2;
}
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
server {
listen 80;
server_name shop.lzyan.fun;
location / {
proxy_pass http://taobao;
}
}
server {
listen 80; #侦听80端口,如果强制所有的访问都必须是HTTPs的,这行需要注销掉
listen 443 ssl;
server_name www.lzyan.fun; #域名
# 增加ssl
#ssl on; #如果强制HTTPs访问,这行要打开
ssl_certificate /etc/nginx/ssl/3262897_lzyan.fun.pem;
ssl_certificate_key /etc/nginx/ssl/3262897_lzyan.fun.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协议的服务器密码将优先于客户端密码
# 定义首页索引目录和名称
location / {
proxy_pass http://blog;
}
#重定向错误页面到 /50x.html
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
}