Docker中的Nginx搭建HTTPS环境
准备 1.已安装好docker环境 2.申请好域名 3.SSL证书(可选)
一、安装Nginx
docker pull nginx
查看docker镜像:
docker images
二、进行配置
建目录用于存放nginx配置文件、证书文件
mkdir /opt/docker/nginx/conf.d -p touch /opt/docker/nginx/conf.d/nginx.conf mkdir /opt/docker/nginx/cert -p
编辑nginx.conf
vim /opt/docker/nginx/conf.d/nginx.conf
1、不需要SSL的情况
server {listen 80; # 监听80端口server_name example.com www.example.com; # 自己的域名location / {proxy_set_header HOST $host;proxy_set_header X-Forwarded-Proto $scheme;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_pass http://127.0.0.1:8090; # 需要代理的地址:端口} }
配置完后,访问example.com、www.example.com 的请求会被转发到服务器的8090端口
2、需要SSL的情况
a)如果不需要访问http的时候强制重定向为https,可以用下面的配置
# 非强制重定向https server {listen 80; #侦听80端口,如果强制所有的访问都必须是HTTPs的,这行需要注销掉listen 443 ssl; #侦听443端口,用于SSLserver_name example.cn www.example.cn; # 自己的域名# 注意文件位置,是从/etc/nginx/下开始算起的ssl_certificate 1_example_bundle.crt;ssl_certificate_key 2_example.key;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;client_max_body_size 1024m;location / {proxy_set_header HOST $host;proxy_set_header X-Forwarded-Proto $scheme;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;# 这里写的是我的腾讯云内网地址,不知道为啥,不能用127.0.0.1...proxy_pass http://xxx.xx.xx.xx:8090;} }
b)如果需要访问http的时候强制重定向为https,可以用下面的配置
# 强制重定向 server {listen 443 ssl;server_name example.com www.example.com; # 自己的域名# 注意文件位置,是从/etc/nginx/下开始算起的ssl_certificate 1_www.example.com_bundle.crt;ssl_certificate_key 2_www.example.com.key;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;client_max_body_size 1024m;location / {proxy_set_header HOST $host;proxy_set_header X-Forwarded-Proto $scheme;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;# 这里写的是我的腾讯云内网地址,不知道为啥,不能用127.0.0.1...proxy_pass http://172.17.0.8:9090;} } server {listen 80; # 监听80端口server_name example.com www.example.com; # 绑定证书的域名#把http的域名请求转成httpsreturn 301 https://$host$request_uri; }
三、启动Nginx
docker run -itd --name nginx -p 80:80 -p 443:443 -v /opt/docker/nginx/conf.d/nginx.conf:/etc/nginx/conf.d/nginx.conf -v /opt/docker/nginx/cert:/etc/nginx -m 100m nginx
启动后,输入docker ps
查看是否启动成功!
docker logs nginx
查看日志。
注:参数说明
-itd 后台运行 -p 指定端口80和443 -v 将本地的文件映射到docker中配置文件 /opt/docker/nginx/conf.d/nginx.conf -> /etc/nginx/conf.d/nginx.conf证书文件 /opt/docker/nginx/cert -> /etc/nginx -m 限制使用内存大小 --name 指定名字为nginx
Q.E.D.
Docker中的Nginx搭建HTTPS环境相关推荐
- 给Docker中的Nginx搭建HTTPS环境
随着苹果和微信小程序强制使用HTTPS协议传输,越来越多的公司和企业开始使用HTTPS.下面我来分享下给Docker容器中的Nginx搭建HTTPS环境 什么是HTTPS 超文本传输安全协议(英语:H ...
- Docker手动构建 nginx+py3+uwsgi环境
Docker手动构建 nginx+py3+uwsgi环境 前述 这里使用的阿里云服务器部署,云服务器ssh登陆成功后,如果几分钟没有操作的话,sshd会自动断开登陆,对于我们来说,在部署软件有时要等很 ...
- 滚动 docker 中的 nginx 日志
Nginx 自己没有处理日志的滚动问题,它把这个球踢给了使用者.一般情况下,你可以使用 logrotate 工具来完成这个任务,或者如果你愿意,你可以写各式各样的脚本完成同样的任务.本文笔者介绍如何滚 ...
- 使用certbot在nginx搭建HTTPS 以及 阿里云负载均衡HTTPS搭建
使用certbot在nginx搭建HTTPS certbot certbot官⽹ apache配置文档 安装证书自动工具 certbot yum install -y epel-release yum ...
- Nginx版本升级以及Docker中的Nginx版本升级
背景: 经安全检测,当前版本的nginx有风险,需要升级到最新版本的nginx,于是进行了原生的nginx版本升级和docker中的nginx版本进行升级 一.原生Nginx版本升级 直接安装到服务器 ...
- 【全】Docker(二)-在Docker中部署Nginx实现负载均衡视频教程
一.前言 在前面的文章中我们已经介绍了如何在Centos7系统中安装Docker以及利用Docker进行Asp.Net Core应用的部署.在本文中,我们将继续介绍利用Docker部署Nginx服务实 ...
- Docker(二)-在Docker中部署Nginx实现负载均衡【完整教程】
一.前言 [查看完整视频教程(免费),请拉直文尾] 在前面的文章中我们已经介绍了如何在Centos7系统中安装Docker以及利用Docker进行Asp.Net Core应用的部署.在本文中,我们将继 ...
- gogs只支持mysql5.7_在docker中跑nginx,gogs,mysql服务
下载加速 echo "OPTIONS='--registry-mirror=https://mirror.ccs.tencentyun.com'" >> /etc/sy ...
- ajax nginx 转发 sessionid_Nginx:初识Nginx(概念、在Docker中安装Nginx、常用命令、配置文件) - 怀梦想,致远方...
1.Nginx初识 (1)概念 Nginx是一个高性能的HTTP和反向代理服务器,特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好 Nginx可以作为静态页面 ...
最新文章
- Python 简介day01
- scp 安全复制(远程文件复制工具)
- Boost:boost::mp11的使用实例
- SpringBoot零基础入门指南--搭建Springboot然后能够在浏览器返回数据
- 有条件忽略测试的JUnit规则
- [css] 你用过css的tab-size属性吗?浏览器默认显示tab为几个空格?
- sendmsg返回值_[求助]怎么处理sendmessage的返回值
- kaggle数据挖掘竞赛Home Credit Default Risk讲解
- js文件的断点调试(chrome)
- android错误 the currently displayed page contains invalid values
- centos 6 安装clamav杀毒软件查毒
- 页面删除android4.0 Launcher仿三星平板workspace页面编辑(即页面增减)
- 将python项目部署到Docker
- IOS 设备越狱原理
- adb 查看屏幕大小_如何从adb命令行获取Android设备的屏幕尺寸?
- GISer开发者的技能清单
- 逆波兰式 java_逆波兰式(后缀表达式)的计算 中缀表达式转后缀表达式(逆波兰式)【java实现】...
- python 多态app_python 多态实例
- Chrome网页翻译失效的解决方案
- ffmpeg dst时间_如何确保您的小工具自动更改DST的时间
热门文章
- 浏览器拦截跨域请求处理方法(已阻止跨源请求:同源策略禁止读取远程资源)
- 人工智能能够构建一个自主驱动云吗?
- 微信小程序简单入门1
- ntfs安全权限和共享权限的区别
- Python模块学习——tempfile
- javascript变量声明语法的应用和分号讲究适用性
- 魅族Flyme5.x以上系统INSTALL_FAILED_SHARED_USER_INCOMPATIBLE
- python入坑指南_Rust入坑指南:万物初始
- linux 扫描mipi设备,VS-RK3399 在linux系统下面调试Mipi camera接口介绍
- php快速排序实现代码,快速排序的算法php实现