自从有了 docker 以后linux上面很多东西都变的很简单,nginx也不例外,这里我分享一个我的nginx的docker-compose的配置,以及nginx的ssl配置
附上我的https地址
https://blog.lengff.com
nginx docker-compose.yml 配置
docker-compose
关于docker-compose,可以参考我的这篇文章
docker学习总结
docker-compose.yml内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| version: "3" services: nginx: restart: always container_name: nginx image: nginx ports: - 80:80 - 443:443 volumes: - /usr/local/docker/nginx/conf.d:/etc/nginx/conf.d - /usr/local/docker/nginx/log:/var/log/nginx - /usr/local/docker/nginx/wwww:/var/www - /usr/local/docker/nginx/etc/letsencrypt:/etc/letsencrypt - /usr/local/docker/nginx/html:/usr/share/nginx/html - /usr/local/docker/nginx/cert:/etc/nginx/cert
|
启动容器
docker-compose up -d
说明
- 我们的nginx配置文件在
/usr/local/docker/nginx/conf.d
这个目录
proxy_pass http://xxx.xxx.xxx.xx:8080;
这个的配置是有讲究的 **
这里需要说明一下,由于docker的网络问题,我们填127.0.0.1是不可行的因为127.0.0.1是docker容器内的网络,不是我们宿主机的网络,所以就不能指向正确的路径我们需要填内网的ip地址例如:
192.168.1.222,这样才是可以行的**
nginx配置ssl
这一步也是超级简单的
1.在阿里上购买免费的SSL证书(当然你也可以买收费的,我买的是免费的)
购买链接:https://www.aliyun.com/product/cas (这不是广告)
2.下载证书
购买完证书,审核结束以后 , 开始下载证书 , 服务器类型记得选nginx , 然后我们就可以拥有xxxx.key 和 xxxx.pem 两个文件 , 将文件上传到我们服务器的
/usr/local/docker/nginx/cert
这个目录中
3.配置default.conf
其实这一步也是超级简单的,我直接贴上代码,在代码里面说明
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| server { listen 80; listen 443 ssl;#这个是https访问的端口 server_name k.lengff.com;#域名地址
#增加ssl #ssl on; #如果强制HTTPs访问,这行要打开 ssl_certificate cert/klengff.pem;#你的xxxx.pem文件名称 ssl_certificate_key cert/klengff.key;#你的xxxx.key文件名称
ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m;
ssl_protocols SSLv2 SSLv3 TLSv1.2;# 指定密码为openssl支持的格式
ssl_ciphers HIGH:!aNULL:!MD5; # 密码加密方式 ssl_prefer_server_ciphers on; #依赖SSLv3和TLSv1协议的服务器密码将优先于客户端密码 location / { #这里需要说明一下,由于docker的网络问题,我们填127.0.0.1是不可行的 #因为127.0.0.1是docker容器内的网络,不是我们宿主机的网络,所以就不能指向正确的路径 #我们需要填内网的ip地址例如:192.168.1.222,这样才是可以行的 proxy_pass http://xxx.xxx.xxx.xx:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } error_page 404 /404.html; }
|
(借鉴)参考文章
docker安装nginx并配置通过https访问