1. 首页

Docker安装nginx以及配置nginx https域名

1 在Docker环境下的安装

1.1 下载nginx的docker镜像


docker pull nginx //JS中文网 – 前端进阶资源分享 https://www.javascriptc.com/ 趣聊CSS系列

1.2 拷贝容器nginx默认配置

  • 先运行一次容器(为了拷贝配置文件):

docker run -p 80:80 --name nginx -v /usr/local/docker/nginx/html:/usr/share/nginx/html -v /usr/local/docker/nginx/logs:/var/log/nginx -d nginx:latest //JS中文网 – 前端进阶资源分享 https://www.javascriptc.com/ 趣聊CSS系列
  • 将容器内的配置文件拷贝到指定目录

docker container cp nginx:/etc/nginx /usr/local/docker/nginx/ cd /usr/local/docker/nginx mv nginx conf //JS中文网 – 前端进阶资源分享 https://www.javascriptc.com/ 趣聊CSS系列
  • 终止并删除容器

docker stop nginx docker rm nginx //JS中文网 – 前端进阶资源分享 https://www.javascriptc.com/ 趣聊CSS系列
  • 进入nginx配置目录

cd /usr/local/docker/nginx/conf/conf.d/ ls //JS中文网 – 前端进阶资源分享 https://www.javascriptc.com/ 趣聊CSS系列

234523420200214144419.png

  • 我这边以Minio对象存储为例子,新建minio.conf,配置如下

server { listen 443 ssl; server_name www.example.top; #你的申请过证书的域名 client_max_body_size 64M; fastcgi_read_timeout 3600; error_page 500 502 503 504 /50x.html; root /usr/share/nginx/html; try_files $uri $uri/ @rewrite; # ssl on; ssl_certificate /etc/nginx/conf.d/certs/www.example.top/example.pem; ssl_certificate_key /etc/nginx/conf.d/certs/www.example.top/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; location / { add_header Content-Security-Policy upgrade-insecure-requests; 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://172.17.0.5:9001/; } } //JS中文网 – 前端进阶资源分享 https://www.javascriptc.com/ 趣聊CSS系列
  • 证书需要自己生成或者购买第三方证书,下载下来放入/usr/local/docker/nginx/conf/conf.d/certs目录当中

  • 同时我们修改默认配置default.conf,使用http自动转https


server { listen 80; server_name www.sparksys.top; #charset koi8-r; #access_log /var/log/nginx/host.access.log main; rewrite ^(.*)$ https://$host$1 permanent; add_header Content-Security-Policy upgrade-insecure-requests; location / { root /usr/share/nginx/html; index index.html index.htm; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # #location ~ \.php$ { # root html; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; # include fastcgi_params; #} # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} } //JS中文网 – 前端进阶资源分享 https://www.javascriptc.com/ 趣聊CSS系列

重点在 rewrite ^(.*)https://host$1 permanent;,实现https的自动转换

1.3 使用docker-compose部署启动

  • 创建docker-compose.yaml文件,配置如下:

version: '3.1' services: nginx: image: nginx:latest container_name: nginx restart: always ports: - 80:80 - 443:443 volumes: - /usr/local/docker/nginx/conf:/etc/nginx - /usr/local/docker/nginx/logs:/var/log/nginx - /usr/local/docker/nginx/html:/usr/share/nginx/html //JS中文网 – 前端进阶资源分享 https://www.javascriptc.com/ 趣聊CSS系列

我们需要暴露80和443端口,在这之前防火墙关闭或者开放80和443端口

  • 部署nginx
  • Js中文网 – 前端进阶资源教程 www.javascriptC.com,typescript 中文文档
  • 一个帮助开发者成长的社区,你想要的,在这里都能找到

docker-compose up -d
  • 此时查看docker运行的容器

docker ps -a //JS中文网 – 前端进阶资源分享 https://www.javascriptc.com/ 趣聊CSS系列

20200214144104.png

  • 在浏览器输入域名网址

    56757567567.png

到此docker&docker-compose部署nginx成功

作者:凛冬王昭君
链接:https://juejin.im/post/6844904112413229069

看完两件小事

如果你觉得这篇文章对你挺有启发,我想请你帮我两个小忙:

  1. 关注我们的 GitHub 博客,让我们成为长期关系
  2. 把这篇文章分享给你的朋友 / 交流群,让更多的人看到,一起进步,一起成长!
  3. 关注公众号 「画漫画的程序员」,公众号后台回复「资源」 免费领取我精心整理的前端进阶资源教程

JS中文网是中国领先的新一代开发者社区和专业的技术媒体,一个帮助开发者成长的社区,目前已经覆盖和服务了超过 300 万开发者,你每天都可以在这里找到技术世界的头条内容。欢迎热爱技术的你一起加入交流与学习,JS中文网的使命是帮助开发者用代码改变世界

本文著作权归作者所有,如若转载,请注明出处

转载请注明:文章转载自「 Js中文网 · 前端进阶资源教程 」https://www.javascriptc.com

标题:Docker安装nginx以及配置nginx https域名

链接:https://www.javascriptc.com/4169.html

« Nginx 入门实战
Js中文网周刊第97期»
Flutter 中文教程资源

相关推荐

QR code