docker如何访问nginx(基于docker启动nginxssl配置)
docker如何访问nginx
基于docker启动nginxssl配置前提条件
- 一台云服务器(阿里云、腾讯云等的centOS)
- 服务器上面要有docker(安装方法这里不做介绍)
- 一个域名
- ssl证书(两个文件:一个key后缀,一个pem后缀;生成方法很多这里不再介绍)
下载最新的nginx的docker image
docker pull nginx:latest
创建目录 nginx, 用于存放后面的相关东西
mkdir -p /home/nginx/www /home/nginx/logs /home/nginx/conf
把我们的静态HTML页面放到 /home/nginx/www 文件夹下面;
在创建的 /home/nginx/conf 文件夹下面创建一个叫 nginx.conf 的文件如下:
user nginx; worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; include /etc/nginx/conf.d/*.conf;
部署nginx
docker run -d -p 80:80 -p 443:443 --name nginx-server -v /home/nginx/www:/usr/share/nginx/html -v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/nginx/logs:/var/log/nginx nginx
命令说明:
-p 80:80: 将容器的 80 端口映射到主机的 80 端口。
-p 443:443: 将容器的 80 端口映射到主机的 443 端口。
--name nginx-server:将容器命名为 nginx-server。-v /home/nginx/www:/usr/share/nginx/html:将我们自己创建的 www 目录挂载到容器的 /usr/share/nginx/html。
-v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:将我们自己创建的 nginx.conf 挂载到容器的 /etc/nginx/nginx.conf。
-v /home/nginx/logs:/var/log/nginx:将我们自己创建的 logs 挂载到容器的 /var/log/nginx。
启动之后便可以通过域名访问到我们的HTML页面了,但是还没完
修改nginx.conf
在我们刚刚创建的 nginx.conf 文件里面插入以下内容:(注意先不要重启)
server { listen 443 ssl; server_name fightingtop.cn www.fightingtop.cn; root /usr/share/nginx/html; ssl_certificate /ssl/certificate.pem; ssl_certificate_key /ssl/2832429_fightingtop.cn.key; ssl_session_timeout 5m; ssl_session_cache shared:SSL:1m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; location / { root /usr/share/nginx/html; index index.html index.htm; } } server { listen 80; server_name fightingtop.cn www.fightingtop.cn; rewrite ^ https://$host$1 permanent; }
将两个证书文件拷贝到nginx容器
先进入nginx容器在根目录创建一个ssl文件夹,用来放证书
docker exec -it aa5badebd38a /bin/bash<br data-filtered="filtered">cd /<br data-filtered="filtered">mkdir ssl
开始拷贝证书
docker cp /home/ssl/certificate.key aa5badebd38a:/ssl/
docker cp /home/ssl/certificate.pem aa5badebd38a:/ssl/
大功告成啦,重启完事!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持开心学习网。
- docker查看挂载目录(docker-修改容器挂载目录的3种方法小结)
- centos7.6 安装docker(Centos7安装Docker2020最新亲测可用,直接复制粘贴即可)
- mongodb容器化部署映射端口访问(Docker 部署 MongoDB容器的方法)
- 远程给docker容器执行命令(Docker命令让普通用户能够执行的实现)
- dockerexec详解(docker中的run/cmd/entrypoint的区别详解)
- docker启动springboot项目(Docker运行springboot项目的实现)
- docker配置redis集群(基于Docker搭建Redis主从集群的实现)
- docker容器网络设置(对docker中的overlay式网络详解)
- dockerswarm网络架构(docker swarm外部验证负载均衡时不生效的解决方案)
- 在docker中运行springboot(Linux Docker运行springboot项目的步骤详解)
- springboot与docker(详解SpringBoot项目docker环境运行时无限重启问题)
- dockermysql配置详解(Docker 部署Mysql 服务和Redis 服务的方法)
- docker常用操作(docker常用命令汇总)
- 2022-01-26 01:41:54
- docker如何改tomcat(docker安装Tomcat 404问题的解决方案)
- ubuntu下使用vscode(使用Vscode结合docker进行开发的详细过程)
- 0 1 岁婴儿最强作息指南,照着做养出天使宝宝(01岁婴儿最强作息指南)
- 沪上这16所高校 萌新 礼包开箱 哪一款让你心动(沪上这16所高校萌新)
- 她救了被绑架的他,而这一切竟是一场阴谋...(她救了被绑架的他)
- 冬季养殖这6种阴生植物,方便又好养,你家有么(冬季养殖这6种阴生植物)
- 阴生植物为什么不怕照不到阳光(阴生植物为什么不怕照不到阳光)
- 阴生环境 耐阴地被植物,你知道哪些(阴生环境耐阴地被植物)
热门推荐
- sql中exists怎么用(SQL中Exists的用法)
- docker中的centos镜像为何很小(CentOS 7.x docker使用overlay2存储方式)
- nginx 重置端口号(详解如何修改nginx的默认端口)
- css复选框按钮(css 单选按钮图标替换的方法)
- python算法图解(python实现kmp算法的实例代码)
- python编程加密解密(python实现AES加密解密)
- web前端字体和图标(web字体加载方案优化小结)
- php和java联系(PHP实现与java 通信的插件使用教程)
- mysql8.0.15官方最新版本安装教程(MySQL8.0.24版本Release Note的一些改进点)
- elementuivue使用技巧(Vue Element前端应用开发之常规Element界面组件)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9