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. 基 vue-element-admin升级的Vue3 +TS +Element-Plus 版本的后端管理前端解决方案 vue3-element-admin 正式对外发布,有来开源组织又一精心力作,毫无保留开放从0到1构建过程

    项目简介 vue3-element-admin 是基于 vue-element-admin 升级的 Vue3 + Element Plus 版本的后台管理前端解决方案,是 有来技术团队 继 youla ...

  2. 记住用户名和登录密码+虚拟机没有root权限解决办法

    今日所学: 记住用户名和登录密码 用adb查看保存文件内容 如何使用adb 如何安装adb-百度经验 遇到的问题: 用adb查看文件时,没有权限访问data文件 出现原因:google play虚拟机 ...

  3. JS 实现下拉框回显

    JS 实现下拉框回显 学习内容: 需求 总结: 学习内容: 需求 用 JS 实现下拉框回显 实现代码 <!DOCTYPE html> <html lang="en" ...

  4. JavaScript中数组的方法和字符串方法总结

    数组是首先的一个对象, 可以通过Array构造器创建一个数组,数组方法总结如下 cacat()  链接两个数组 join()  将数组链接成字符串 pop() 删除最后一个元素  shift()  删 ...

  5. 【深度学习 论文篇 01-1 】AlexNet论文翻译

    前言:本文是我对照原论文逐字逐句翻译而来,英文水平有限,不影响阅读即可.翻译论文的确能很大程度加深我们对文章的理解,但太过耗时,不建议采用.我翻译的另一个目的就是想重拾英文,所以就硬着头皮啃了.本文只 ...

  6. 爬虫---scrapy全站爬取

    全站爬取1 基于管道的持久化存储 数据解析(爬虫类) 将解析的数据封装到item类型的对象中(爬虫类) 将item提交给管道, yield item(爬虫类) 在管道类的process_item中接手 ...

  7. Ubuntu Qt5 Firebird 数据库驱动安装

    Ubuntu Qt5 Firebird 数据库驱动安装 apt install libqt5sql5-ibase

  8. 浅尝Spring注解开发_自定义注册组件、属性赋值、自动装配

    Spring注解开发 浅尝Spring注解开发,基于Spring 4.3.12 包含自定义扫描组件.自定义导入组件.手动注册组件.自动注入方法和参数.使用Spring容器底层组件等 配置 @Confi ...

  9. centos7系统安装 VMware

    安装版本: CentOS-7-x86_64-DVD-2009.iso   下载地址:阿里巴巴开源镜像 第一步:打开虚拟机,新建虚拟机引导,选择高级,下一步. 第二步:默认下一步 第三步:选择最后一项, ...

  10. Linux screen命令详解

    开源Linux 长按二维码加关注~ 上一篇:局域网IP冲突罪魁祸首是谁? 很多时候,我们都需要执行一些需要很长时间的任务.如果这时候,你的网络连接突然断开了,那么你之前所做的所有工作可能都会丢失,所做 ...