一、前言

  上一文章当中说了Docker-Compose管理镜像和容器,本文章介绍使用Docker中Nginx镜像,使用的工具和ubuntu版本在ASP.NET CORE部署在Docker容器中已详细说明。

二、Docker-Nginx配置

拉取Nginx镜像 

docker pull nginx

查看镜像

docker images

使用挂载nginx配置文件的方式,新建文件夹,文件夹内新建nginx.conf和default.conf,新建ssl文件夹将证书上传到文件夹中。

 

nginx.conf配置文件内容

#运行nginx的用户
user nginx;
#启动进程设置成和CPU数量相等
worker_processes 1; #全局错误日志及PID文件的位置
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid; #工作模式及连接数上限
events {
#单个后台work进程最大并发数设置为1024
worker_connections 1024;
} http {
#设定mime类型
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压缩
#gzip on;
include server/*.cn;
include /etc/nginx/conf.d/*.conf;
}

default.conf配置文件内容

server {
## 443端可以是https的专用端口
listen 443 ssl;
server_name 域名; ssl_certificate /ssl/ca.crt;
ssl_certificate_key /ssl/ca.key; ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on; location / {
# proxy_pass http://localhost:5000;
proxy_pass 容器地址,禁止使用127.0.0.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 150;
proxy_send_timeout 100;
proxy_read_timeout 100;
proxy_buffers 4 32k;
client_max_body_size 8m;
client_body_buffer_size 128;
}
}
#强制HTTP跳转HTTPS
server { listen 80; server_name 域名; rewrite ^(.*) https://$server_name; }

启动nginx容器并且挂载文件

sudo docker run --name nginx -d -p 443:443 -p 80:80 -v
/home/cs-root/Nginx/nginx.conf:/etc/nginx/nginx.conf -v
/home/cs-root/Nginx/default.conf:/etc/nginx/conf.d/dafault.conf -v /home/cs-root/Nginx/ssl:/ssl/:rw nginx

我所遇到的问题:

Nginx 代理地址如果是本地 不能使用127.0.0.1或loacalhost  应使用服务器ip。

内网通过域名访问不了:公网ip映射域名错误。

Docker Nginx介绍到这里就结束了,如遇到问题,可以进行评论留言。

Docker中使用Nginx镜像配置HTTPS和HTTP强制使用HTTPS访问(4)的更多相关文章

  1. Docker中使用nginx镜像

    1.到网易蜂巢查看nginx https://c.163yun.com/hub#/m/home/ 复制nginx镜像地址为:docker pull hub.c.163.com/library/ngin ...

  2. 在docker中部署centos7镜像

    本篇文章参考自: https://www.cnblogs.com/linjj/p/5606911.html https://blog.csdn.net/u012767761/article/detai ...

  3. docker拉取oracle11g镜像配置

    开始拉取oracle11g镜像 下载过程稍长,镜像大小6.8G(之前拉取过了,所以就不截图了) #docker pull registry.cn-hangzhou.aliyuncs.com/helow ...

  4. 解决docker中使用nginx做负载均衡时并发过高时的一些问题

    # 解决docker中使用nginx做负载均衡时并发过高时的一些问题 1.问题产生原因: 由于通过nginx作为负载均衡服务,在访问并发数量达到一定量级时jmeter报错. nginx日志关键信息:a ...

  5. Docker中运行nginx

    Docker中运行nginx 1.Docker中运行nginx 2.配置文件 2.1 nginx.conf 2.2 default.conf 3.docker的镜像可以挂什么卷 部分内容原文地址: C ...

  6. 滚动 docker 中的 nginx 日志

    Nginx 自己没有处理日志的滚动问题,它把这个球踢给了使用者.一般情况下,你可以使用 logrotate 工具来完成这个任务,或者如果你愿意,你可以写各式各样的脚本完成同样的任务.本文笔者介绍如何滚 ...

  7. 为 docker 中的 nginx 配置 https

    没有 https 加持的网站会逐渐地被浏览器标记为不安全的,所以为网站添加 https 已经变得刻不容缓.对于商业网站来说,花钱购买 SSL/TLS 证书并不是什么问题.但对于个人用户来说,如果能有免 ...

  8. [Docker] Win10中安装Docker并运行Nginx镜像

    一.安装Docker 进入官网:https://www.docker.com/products/docker-desktop 可能需要先注册登录,很简单的. 点击 Download Desktop f ...

  9. docker中基于centos镜像部署lnmp环境 php7.3 mysql8.0 最新版

    Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源. Docker可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的Linux机器上 ...

  10. CentOS7安装Docker,运行Nginx镜像、Centos镜像

    摘要 总体思路:yum命令直接安装Docker,下载想要的镜像并启动 1.环境,CentOS7 Minimal 64位,Docker必须要64位的系统 2.通过yum命令直接安装,yum instal ...

随机推荐

  1. [python] 个人日常python工具代码

    文章目录 生成文件目录结构 多图合并 找出文件夹中相似图像 生成文件目录结构 生成文件夹或文件的目录结构,并保存结果.可选是否滤除目录,特定文件以及可以设定最大查找文件结构深度.效果如下: root: ...

  2. mac下 idea 注释快捷键冲突

    你好,我是悦创. 博客首发:https://bornforthis.cn/posts/28.html 打开偏好设置,将冲突的快捷键关掉,就可以解决 idea 使用注释快捷键,会打开 help 页面的问 ...

  3. Linux c 程序自动启动自己

    在程序自动升级的时候需要自己重新启动自己 #include <stdio.h> #include <stdlib.h> #include <unistd.h> in ...

  4. MySQL 日期函数、时间函数在实际场景中的应用

    整理日常业务中用到日期函数的一些场景,并对日期函数按照使用类型做了分类,实例也尽可能符合日常需求.为了方便查阅,可以先看目录,再根据需要看具体方法和实例. 首先明确日期和时间类型有哪些,也就是日期函数 ...

  5. 最新编程语言排名Python、C、Java 和 C++ 已形成四足鼎立之势

    引言 技术的千变万化,都是有迹可循的,随着最新的 TIOBE 十月编程语言榜单重磅发布,不同开发语言的排名和发展趋势也随之揭晓! 四大编程语言不断增强其主导地位 曾几何时,编程语言界中 Java.C. ...

  6. C++中进程间相互通信的方法

    详细资料查看https://www.cnblogs.com/swunield/articles/3893250.html 在我看来主要分方式就是 1.共享内存 2.postmessage发送出去 3. ...

  7. Node.js 应用全链路追踪技术——全链路信息存储

    作者:vivo 互联网前端团队- Yang Kun 本文是上篇文章<Node.js 应用全链路追踪技术--全链路信息获取>的后续.阅读完,再来看本文,效果会更佳哦. 本文主要介绍在Node ...

  8. 12月12日内容总结——Django之数据增删改查、Django请求生命周期流程图、Django路由层(路由匹配、转换器、正则匹配)、反向解析

    目录 一.可视化界面之数据增删改查 二.django请求生命周期流程图 三.django路由层 1.路由匹配 2.转换器 3.正则匹配 不同版本的区别 正则匹配斜杠导致的区别 4.正则匹配的无名有名分 ...

  9. mvn引用本地包

    <dependency> <groupId>jna</groupId> <artifactId>jna</artifactId> <s ...

  10. 面向对象程序设计(三):new&deleet什么是动态内存

    <C++ primer>中提到:在C++中,动态内存的管理是通过一对运算符来完成的: new 在内存池中为对象分配一块空间,并指向这个对象的指针,我们可以在这里对对象进行初始化: dele ...