nginx安装

下载镜像并测试

1.docker pull nginx

2.docker images nginx 查看我们拉取到本地的nginx镜像IMAGE ID

3.首先测试下nginx镜像是否可用,使用docker run -d --name mynginx -p 80:80 imgae ID创建并启动nginx容器

将nginx容器内部配置文件挂载到主机

将nginx容器内部配置文件挂载到主机,之后就可以在主机对应目录修改即可。适合频繁修改,复杂使用的情况

1.在主机/mnt目录下执行 mkdir -p ./nginx/{conf,html,logs}创建挂载目录

2.将容器内的nginx.conf与default.conf文件分别拷贝到主机/mnt/nginx和/mnt/nginx/conf下,分别执行

docker cp ef:/etc/nginx/nginx.conf
dokcer cp ef:/etc/nginx/conf.d/default.conf ./conf/

cp 命令代表复制

ef是我们nginx容器的ID,/etc/nginx/nginx.conf 是容器内部nginx.conf 路径

3.执行docker stop 容器ID 命令停止刚刚创建的nginx容器,b3是容器Id,然后执行docker rm 容器ID 移除容器。

4.执行下方命令重建容器

docker run -d --name mynginx -p 80:80 -p 443:443 -v /mnt/nginx/nginx.conf:/etc/nginx/nginx.conf -v /mnt/nginx/logs:/var/log/nginx -v /mnt/nginx/html:/usr/share/nginx/html -v /mnt/nginx/conf:/etc/nginx/conf.d -v /mnt/nginx/ssl:/ssl --privileged=true 容器ID

-v 挂载目录,格式 -v: 表示将主机目录与容器目录之间进行共享,

--privileged=true 容器内部对挂载的目录拥有读写等特权

5.这时我们在容器的挂载 /mnt/nginx/html目录下创建index.html,内容随便写上hello docker nginx,再次访问主机IP

到这里就大功告成了!

需要注意的:我们在挂载目录的操作,都实际会映射到容器内部,写配置文件的时候一定要注意路径问题!!(我在配置SSL的时候浪费了很长的时间不清楚最后是什么原因,在配置SSL文件路径的时候一定要写对应的docker容器内部地址,否则会找不到。)

贴一个nginx.conf


user nginx;
worker_processes auto; error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid; events {
worker_connections 1024;
} http {
include mime.types;
default_type application/octet-stream;
sendfile on;
gzip on;
client_max_body_size 10m;
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
} upstream tomcat1 {
server 172.17.0.1:8080;
}
server {
#SSL 访问端口号为 443
listen 443 ssl;
#填写绑定证书的域名
server_name www.xxx.com;
#证书文件名称
ssl_certificate /ssl/xxx.crt;
#私钥文件名称
ssl_certificate_key /ssl/xxx.key;
#ssl_session_cache shared:SSL:5m;
ssl_session_timeout 5m;
#keepalive_timeout 70;
#请按照以下协议配置
ssl_protocols TLSv1.2 TLSv1.3;
#请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on; location /html{
#alias配置静态vue项目的时候用,之前用了root一直没法访问浪费我1天时间才找到问题所在
#root和alias的区别(根据实际需求选择用哪个)
#root会在目录后加上location后的路径,在本示例就是/usr/share/nginx/html/dist/html才能正确访问到
#alias就是绝对地址,在本示例把前端放 /usr/share/nginx/html/dist 下就可以
#注意:此处一定要写挂载目录对应的docker容器内的路径,而不是物理机的路径
#例如:物理机/mnt/nginx/html 挂载到docker容器内的usr/share/nginx/html
#你把vue项目放到/mnt/nginx/html下的时候,一定不能直接写这个目录,而要写对应容易的目录usr/share/nginx/html
alias /usr/share/nginx/html/dist;
index index.html;
} location / {
proxy_ssl_server_name on;
#网站主页路径。此路径仅供参考,具体请您按照实际目录操作。
#root html;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://tomcat1;
#index index.html index.htm;
} } server{
listen 80;
server_name www.xxx.com;
location / {
proxy_read_timeout 360s;
proxy_pass http://tomcat1;
proxy_set_header Host $host:$server_port;
proxy_http_version 1.1;
#websocket用
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
} }

docker安装nginx,配置SSL的更多相关文章

  1. docker安装和配置nginx

    配置nginx docker配置nginx 本机ip是192.168.0.200 docker pull nginx 配置nginx主机 vi /root/docker/nginx/nginx01.c ...

  2. Docker安装Nginx(含:Windows启动、重启、停止)

    Docker安装Nginx #docker pull nginx:latest (第一次启动Docker-Nginx) #docker run --detach \ --publish 80:80 \ ...

  3. Windows下Nginx配置SSL实现Https访问(包含证书生成)

    Vincent.李   Windows下Nginx配置SSL实现Https访问(包含证书生成) Windows下Nginx配置SSL实现Https访问(包含证书生成) 首先要说明为什么要实现https ...

  4. nginx配置ssl加密(单双向认证、部分https)

    nginx配置ssl加密(单双向认证.部分https) nginx下配置ssl本来是很简单的,无论是去认证中心买SSL安全证书还是自签署证书,但最近公司OA的一个需求,得以有个机会实际折腾一番.一开始 ...

  5. Centos7.2下Nginx配置SSL支持https访问(站点是基于.Net Core2.0开发的WebApi)

    准备工作 1.基于nginx部署好的站点(本文站点是基于.Net Core2.0开发的WebApi,有兴趣的同学可以跳http://www.cnblogs.com/GreedyL/p/7422796. ...

  6. Linux、Docker安装Nginx

    Docker安装Nginx #docker images nginx #docker search nginx #docker pull nginx #docker run -it -p 8084:8 ...

  7. [转帖]nginx配置ssl加密(单/双向认证、部分https)

    nginx配置ssl加密(单/双向认证.部分https) https://segmentfault.com/a/1190000002866627   nginx下配置ssl本来是很简单的,无论是去认证 ...

  8. Nginx配置SSL证书实现https访问「浏览器未认证」

    http 和 https 介绍 http:应用最广泛的一种网络协议,是一个B/S的request和response的标准,用于从www服务器传输超文本到本地浏览器的传输协议. https:以安全为目标 ...

  9. Nginx配置SSL报错 nginx: [emerg] unknown directive "ssl"

    Nginx配置SSL报错 nginx: [emerg] unknown directive "ssl"     出现如图所示错误,处理办法如下 去nginx解压目录下执行 ./co ...

  10. 阿里云CentOS7.3服务器通过Docker安装Nginx

    前言 小编环境: 阿里云CentOS7.3服务器 docker 下面分享一次小编在自己的阿里云CentOS7.3服务器上使用Docker来安装Nginx的一次全过程 温馨小提示: 如果只是希望单纯使用 ...

随机推荐

  1. 设计模式-观察者模式Observe的实现

    using System.Collections; using System.Collections.Generic; using UnityEngine; /// <summary> / ...

  2. python-for循环跳过第一行

    代码: for i in data[1:]: 即可跳过第一行

  3. python-成绩转换

    本题要求编写程序将一个百分制成绩转换为五分制成绩.转换规则: 大于等于90分为A: 小于90且大于等于80为B: 小于80且大于等于70为C: 小于70且大于等于60为D: 小于60为E. 输入样例: ...

  4. Java/C++实现策略模式---旅游出行方式

    旅游的出行方式有乘坐飞机旅行.乘火车旅行和自行车游,不同的旅游方式有不同的实现过程,客户可以根据自己的需要选择一种合适的旅行方式. 类图: Java代码: public class Person { ...

  5. 剖析虚幻渲染体系(14)- 延展篇:现代渲染引擎演变史Part 1(萌芽期)

    目录 14.1 本篇概述 14.1.1 游戏引擎简介 14.1.2 游戏引擎模块 14.1.3 游戏引擎列表 14.1.3.1 Unreal Engine 14.1.3.2 Unity 14.1.3. ...

  6. kali下安装docker

    前期准备 物理机:win10 虚拟机:kali 2021 网络连接方式:桥接 一.简介 Vulhub: 是一个面向大众的开源漏洞靶场,无需docker知识,简单执行两条命令即可编译.运行一个完整的漏洞 ...

  7. 7.Arrays类

    1. Arrays类 数组的工具类java.util.Arrays Arrays类中的方法都是static修饰的静态方法,使用的时候可以直接使用类名进行调用 (而不是使用对象)(是"不用&q ...

  8. 使用Visual Studio 2019开发Qt程序

    安装Qt 如标题,你首先需要到 http://download.qt.io/ 去下载并安装Qt,并在引导下安装MSVC组件(这里不做过多解释) Visual Studio 2019 配置 打开VS20 ...

  9. mouseenter 和 mouseover 的区别

    当鼠标移动到元素上时就会触发mouseenter事件 类似mouseover,它们两者之间的差别是 mouseover鼠标经过自身盒子会触发,经过子盒子还会触发.mouseenter只会经过自身盒子触 ...

  10. vue项目中cookie的使用

    Vue使用cookie和session 1:cookie和session 为了防止数据运输或存储终端,特地设置了cookie和session,他们其实都是将数据存储当地. cookie数据保存在客户端 ...