准备 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环境相关推荐

  1. 给Docker中的Nginx搭建HTTPS环境

    随着苹果和微信小程序强制使用HTTPS协议传输,越来越多的公司和企业开始使用HTTPS.下面我来分享下给Docker容器中的Nginx搭建HTTPS环境 什么是HTTPS 超文本传输安全协议(英语:H ...

  2. Docker手动构建 nginx+py3+uwsgi环境

    Docker手动构建 nginx+py3+uwsgi环境 前述 这里使用的阿里云服务器部署,云服务器ssh登陆成功后,如果几分钟没有操作的话,sshd会自动断开登陆,对于我们来说,在部署软件有时要等很 ...

  3. 滚动 docker 中的 nginx 日志

    Nginx 自己没有处理日志的滚动问题,它把这个球踢给了使用者.一般情况下,你可以使用 logrotate 工具来完成这个任务,或者如果你愿意,你可以写各式各样的脚本完成同样的任务.本文笔者介绍如何滚 ...

  4. 使用certbot在nginx搭建HTTPS 以及 阿里云负载均衡HTTPS搭建

    使用certbot在nginx搭建HTTPS certbot certbot官⽹ apache配置文档 安装证书自动工具 certbot yum install -y epel-release yum ...

  5. Nginx版本升级以及Docker中的Nginx版本升级

    背景: 经安全检测,当前版本的nginx有风险,需要升级到最新版本的nginx,于是进行了原生的nginx版本升级和docker中的nginx版本进行升级 一.原生Nginx版本升级 直接安装到服务器 ...

  6. 【全】Docker(二)-在Docker中部署Nginx实现负载均衡视频教程

    一.前言 在前面的文章中我们已经介绍了如何在Centos7系统中安装Docker以及利用Docker进行Asp.Net Core应用的部署.在本文中,我们将继续介绍利用Docker部署Nginx服务实 ...

  7. Docker(二)-在Docker中部署Nginx实现负载均衡【完整教程】

    一.前言 [查看完整视频教程(免费),请拉直文尾] 在前面的文章中我们已经介绍了如何在Centos7系统中安装Docker以及利用Docker进行Asp.Net Core应用的部署.在本文中,我们将继 ...

  8. gogs只支持mysql5.7_在docker中跑nginx,gogs,mysql服务

    下载加速 echo "OPTIONS='--registry-mirror=https://mirror.ccs.tencentyun.com'" >> /etc/sy ...

  9. ajax nginx 转发 sessionid_Nginx:初识Nginx(概念、在Docker中安装Nginx、常用命令、配置文件) - 怀梦想,致远方...

    1.Nginx初识 (1)概念 Nginx是一个高性能的HTTP和反向代理服务器,特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好 Nginx可以作为静态页面 ...

最新文章

  1. Python 简介day01
  2. scp 安全复制(远程文件复制工具)
  3. Boost:boost::mp11的使用实例
  4. SpringBoot零基础入门指南--搭建Springboot然后能够在浏览器返回数据
  5. 有条件忽略测试的JUnit规则
  6. [css] 你用过css的tab-size属性吗?浏览器默认显示tab为几个空格?
  7. sendmsg返回值_[求助]怎么处理sendmessage的返回值
  8. kaggle数据挖掘竞赛Home Credit Default Risk讲解
  9. js文件的断点调试(chrome)
  10. android错误 the currently displayed page contains invalid values
  11. centos 6 安装clamav杀毒软件查毒
  12. 页面删除android4.0 Launcher仿三星平板workspace页面编辑(即页面增减)
  13. 将python项目部署到Docker
  14. IOS 设备越狱原理
  15. adb 查看屏幕大小_如何从adb命令行获取Android设备的屏幕尺寸?
  16. GISer开发者的技能清单
  17. 逆波兰式 java_逆波兰式(后缀表达式)的计算 中缀表达式转后缀表达式(逆波兰式)【java实现】...
  18. python 多态app_python 多态实例
  19. Chrome网页翻译失效的解决方案
  20. ffmpeg dst时间_如何确保您的小工具自动更改DST的时间

热门文章

  1. 浏览器拦截跨域请求处理方法(已阻止跨源请求:同源策略禁止读取远程资源)
  2. 人工智能能够构建一个自主驱动云吗?
  3. 微信小程序简单入门1
  4. ntfs安全权限和共享权限的区别
  5. Python模块学习——tempfile
  6. javascript变量声明语法的应用和分号讲究适用性
  7. 魅族Flyme5.x以上系统INSTALL_FAILED_SHARED_USER_INCOMPATIBLE
  8. python入坑指南_Rust入坑指南:万物初始
  9. linux 扫描mipi设备,VS-RK3399 在linux系统下面调试Mipi camera接口介绍
  10. php快速排序实现代码,快速排序的算法php实现