1 准备

1.已安装好docker环境
2.已申请好域名

2 申请SSL证书

我使用的是腾讯云,申请免费的TrustAsia的SSL证书,阿里云等或者其他平台一般都会提供TrustAsia的SSL证书的
填好域名等相关信息,一般一天就可以下载证书了

3 docker安装Nginx

docker pull nginx

4 进行配置

找个目录放配置文件,我建了个/data/nginx/conf.d,再建个配置文件nginx.conf

mkdir /data/nginx/conf.d -p
touch /data/nginx/conf.d/nginx.conf

再建个目录存放证书文件(不配置SSL可忽略),然后把下载的证书放到/data/nginx/conf.d/cert 中

mkdir /data/nginx/conf.d/cert -p

4.1 不需要SSL的情况

nano /data/nginx/conf.d/nginx.conf

编辑nginx.conf,内容如下

server {listen 80;  # 监听80端口server_name yingserver.cn www.yingserver.cn;  # 自己的域名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;  # 需要代理的地址:端口}
}

配置完后,访问yingserver.cn www.yingserver.cn的请求会被转发到服务器的8090端口自己的博客上

4.2 需要SSL的情况

如果不需要访问http的时候强制重定向为https,可以用下面的配置

nano /data/nginx/conf.d/nginx.conf
  • 编辑nginx.conf,内容如下
# 非强制重定向https
server {listen 80; #侦听80端口,如果强制所有的访问都必须是HTTPs的,这行需要注销掉listen 443 ssl; #侦听443端口,用于SSLserver_name yingserver.cn www.yingserver.cn;  # 自己的域名# 注意文件位置,是从/etc/nginx/下开始算起的ssl_certificate conf.d/1_yingserver.cn_bundle.crt;ssl_certificate_key conf.d/2_yingserver.cn.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.16.0.3:8090;}
}

如果需要访问http的时候强制重定向为https,可以用下面的配置

# 强制重定向
server {listen 443 ssl;server_name yingserver.cn www.yingserver.cn;  # 自己的域名# 注意文件位置,是从/etc/nginx/下开始算起的ssl_certificate conf.d/1_yingserver.cn_bundle.crt;ssl_certificate_key conf.d/2_yingserver.cn.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.16.0.3:8090;}
}
server {listen 80; # 监听80端口server_name yingserver.cn www.yingserver.cn;  # 自己的域名#把http的域名请求转成httpsreturn 301 https://$host$request_uri;
}

注意配置ssl_certificate和ssl_certificate_key的时候,路径是从容器内/etc/nginx/下开始算起的,我后面会把证书文件挂载到容器内nginx下/conf.d/cert中,所以会这么写

5 启动Nginx

docker run -itd --name nginx -p 80:80 -p 443:443-v /data/nginx/conf.d/nginx.conf:/etc/nginx/conf.d/nginx.conf -v /data/nginx/conf.d/cert:/etc/nginx/conf.d -m 100m nginx

参数说明

-itd    后台运行
-p      指定端口80(http)和443(https)
-v      将本地的文件映射到docker中配置文件 /data/nginx/conf.d/nginx.conf -> /etc/nginx/conf.d/nginx.conf证书文件 /data/nginx/conf.d/cert -> /etc/nginx/conf.d
-m      限制使用内存大小
--name  指定名字为nginx

docker安装nginx并配置SSL到个人博客相关推荐

  1. docker安装nginx并配置ssl证书

    文章目录 一.准备SSL证书 二.下载最新nginx镜像 三.新建几个目录,把nginx容器内的配置文件挂载到主机上 四.启动一个nginx临时容器,把配置文件复制过来,然后删除 五.把SSL证书上传 ...

  2. docker安装nginx,配置nginx,并成功访问

    [Nginx那些事]系列 [Nginx那些事]nginx 安装及常用指令 [Nginx那些事]Nginx 配置文件说明 [Nginx那些事]nginx原理解析 [Nginx那些事]nginx配置实例( ...

  3. 使用Docker安装Nginx并配置端口转发

    使用docker安装并运行nginx命令: docker run --name=nginx -p 80:80 -d docker.io/nginx 使用命令: docker exec -it ngin ...

  4. Linux安装nginx并配置ssl

    在linux下安装nginx,首先需要安装 gcc-c++编译器.然后安装nginx依赖的pcre和zlib包.最后安装nginx即可. 1.先安装gcc-c++编译器 yum install gcc ...

  5. Docker(十):Docker实战 Docker 安装 Nginx

    Docker 安装 Nginx Nginx 是一个高性能的 HTTP 和反向代理 web 服务器,同时也提供了 IMAP/POP3/SMTP 服务 . 1.查看可用的 Nginx 版本 访问 Ngin ...

  6. Docker系列 二. Docker 安装 Nginx

    Docker 安装 Nginx Nginx 是一个高性能的 HTTP 和反向代理 web 服务器,同时也提供了 IMAP/POP3/SMTP 服务 . 1.查看可用的 Nginx 版本 访问 Ngin ...

  7. Docker系列三~docker安装nginx

    Docker系列三 docker安装nginx 搜索nginx版本 docker search nginx 拉取nginx最新版本镜像 docker pull nginx:latest 查看本地镜像 ...

  8. Docker安装及镜像配置(常用命令介绍)

    一.安装Docker 官网 https://docs.docker.com/engine/install/centos/ # 1.卸载旧的版本 yum remove docker \docker-cl ...

  9. CentOS7安装Nginx及配置

    出自:https://blog.csdn.net/wxyjuly/article/details/79443432 Nginx是一款轻量级的网页服务器.反向代理服务器.相较于Apache.lightt ...

最新文章

  1. postman无法获得响应_【原创翻译】POSTMAN从入门到精通系列(二):发送第一个请求...
  2. Kubernetes删除一直处于Terminating状态的namespace
  3. web前端技术分享:管理系统全栈项目之注册功能
  4. BZOJ1146 [CTSC2008]网络管理Network 树链剖分 主席树 树状数组
  5. ANSYS——自定义的梁截面中心(法线节点)的偏置,详细全面
  6. mysql 不同分区 同时insert_Mysql分区表的原理和优缺点
  7. 无法使用JDK 8卸载JavaFX SceneBuilder 1.0
  8. RocketMQ初步应用架构理论
  9. 【Axure图标库】Axure彩色长阴影图标库910+ 方与圆二合一
  10. java mysql sqlhelper_Java访问MySQL数据库的SqlHelper类以及测试程序
  11. win10安装k8s
  12. Lagrange’s Mean Value Theorem - 拉格朗日中值定理
  13. 计算一个整数,转换成二进制,里面有多少个1
  14. Java-构造方法(constructor)
  15. java象棋打谱系统
  16. MobPush创建推送
  17. 2022电工(中级)操作证考试题库及模拟考试
  18. SQL中grant的用法
  19. android tuner 教程,安卓调谐器(Android Tuner)
  20. 计算机上海专业排名,2019上海软科世界一流学科排名计算机科学与工程专业排名斯坦福大学排名第2...

热门文章

  1. vue-router之路由钩子(八)
  2. mysql截取字符串与reverse函数
  3. Swift iOS : 内存管理
  4. Solr入门——安装
  5. java开发_Runtime
  6. linux系统管理学习笔记之八---进程与作业的管理
  7. 二维小波变换_【外文文献速读】实时二维水波模拟
  8. php网站无法显示,php – 在UTF-8网站上无法正确显示的字符
  9. gitlab ci mysql_php-Gitlab CI:在阶段之间保留MySQL数据
  10. pip 安装模块时报“pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='files.pythonh”