Docker 【Nginx集群部署】

news2024/12/24 2:17:54

目录

1. nginx前置操作

2. 自定义容器

3. nginx常用命令

4. Error

4.1 502(无响应网关/代理)

4.2 404(找不到对应页面)

4.3 400(异常请求)

4.4 响应超时问题

5. 完整版本Nginx配置文件


1. nginx前置操作

   1. 下载拉取nginx镜像 

docker pull nginx

   2. 使用nginx镜像创建容器 X X X (不建议使用)

docker run -itd --name nginx -p 8080:80 nginx:latest

   3. 无法使用vim指令,所以需要进行目录挂载

docker run -itd \
--name nginx01 \
-v /home/nginx/conf.d:/etc/nginx/conf.d \
-v /home/nginx/html:/etc/nginx/html \
-v /home/nginx/log:/usr/log/nginx \
-p 8080:80 \
nginx

第一个-v:挂载nginx的主配置文件,以方便在宿主机上直接修改容器的配置文件

第二个-v:挂载静态页面目录

第三个-v:挂载容器内nginx的日志,容器运行起来之后,可以直接在宿主机的这个目录中查看 nginx日志

   4. 进入容器内 

docker exec -it nginx01 bash

2. 自定义容器

docker run -it --name spring01 --net mynet -p 8081:8080 spring:2.0

3. nginx常用命令

nginx -t # 检查配置文件

nginx -s reload # 重读配置文件

service nginx start # 启动

service nginx stop # 停止

service nginx restart # 重新启动

service nginx reload # 重新加载配置,平滑启动

service nginx status # 查看状态 

4. Error

  4.1 502(无响应网关/代理)

upstream tomcatList {
server 172.18.0.5:8080 weight=1;
server 172.18.0.3:8080 weight=2;
server 172.18.0.4:8080 weight=2;
}
  • 端口或者协议不一致 

  4.2 404(找不到对应页面)

location ~^/api/ {
proxy_pass http://tomcatList;
proxy_redirect default;
}
  • 路径映射存在问题 
    • ​​​​​​​proxy_pass后面的路径以/结尾
    • #rewrite ^/api/(.*)$ /$1 break; 重写规则

  4.3 400(异常请求)

java.lang.IllegalArgumentException: The character [_] is never valid in a domain
name.
at
org.apache.tomcat.util.http.parser.HttpParser$DomainParseState.next(HttpParser.j
ava:974) ~[tomcat-embed-core-9.0.41.jar!/:9.0.41]
at
org.apache.tomcat.util.http.parser.HttpParser.readHostDomainName(HttpParser.java
:870) ~[tomcat-embed-core-9.0.41.jar!/:9.0.41]
at org.apache.tomcat.util.http.parser.Host.parse(Host.java:71) ~[tomcatembed-core-9.0.41.jar!/:9.0.41]
at org.apache.tomcat.util.http.parser.Host.parse(Host.java:45) ~[tomcatembed-core-9.0.41.jar!/:9.0.41]
at
org.apache.coyote.AbstractProcessor.parseHost(AbstractProcessor.java:298) ~
[tomcat-embed-core-9.0.41.jar!/:9.0.41]
at
org.apache.coyote.http11.Http11Processor.prepareRequest(Http11Processor.java:797
) [tomcat-embed-core-9.0.41.jar!/:9.0.41]
at
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:350)
[tomcat-embed-core-9.0.41.jar!/:9.0.41]
at
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
[tomcat-embed-core-9.0.41.jar!/:9.0.41]
at
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.ja
va:888) [tomcat-embed-core-9.0.41.jar!/:9.0.41]
at
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:15
97) [tomcat-embed-core-9.0.41.jar!/:9.0.41]
at
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
[tomcat-embed-core-9.0.41.jar!/:9.0.41]
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[na:1.8.0_221]
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[na:1.8.0_221]
at
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:6
1) [tomcat-embed-core-9.0.41.jar!/:9.0.41]
at java.lang.Thread.run(Thread.java:748) [na:1.8.0_221]
  •  springboot无法识别负载均衡中的_符号
upstream tomcatList {
server 172.18.0.5:8081 weight=1;
server 172.18.0.3:8081 weight=2;
server 172.18.0.4:8081 weight=2;
}

  4.4 响应超时问题

  • 检查网段是否互通 
docker network connect mynet nginx

5. 完整版本Nginx配置文件

#服务器的集群
upstream tomcatList {   #服务器集群名字
    server 172.18.0.5:8081 weight=1;  #服务器1   weight是权重的意思,权重越大,分配的概率越大
    server 172.18.0.3:8081 weight=2;  #服务器2   weight是权重的意思,权重越大,分配的概率越大
    server 172.18.0.4:8081 weight=2;  #服务器3   weight是权重的意思,权重越大,分配的概率越大
}

server {

  listen 80;
  server_name www.zking.com;

  location / {
    root /etc/nginx/html/;
    index index.html index.htm;
  }

  error_page 500 502 503 504 /50x.html;
    location = /50x.html {
    root /usr/share/nginx/html;
  }

  location ~^/api/ {
    rewrite ^/api/(.*)$ /$1 break;
    proxy_pass http://tomcatList;
    proxy_redirect default;
  }

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/14454.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LVS负载均衡群集(DR模式)

LVS-DR工作原理 数据包流向分析 第一步:客户端发送请求到 Director Server (负载均衡器),请求的数据报文到达内核空间。 数据报文 源 IP ------客户端的 IP 目标 IP ------ VIP 源 MAC ------客户端的 MAC 目的 MAC ------ Director Server…

全产业链核心升级 集聚创新大展宏图——慕尼黑华南电子展回顾

展会简介 2022年11月15日至17日,高交会 - 智能制造、先进电子及激光技术博览会旗下成员展 (LEAP Expo)-慕尼黑华南电子展、慕尼黑华南电子生产设备展、华南先进激光及加工应用技术展览会及同期举办的华南电路板国际贸易采购博览会与中国&…

【全网热点】打造全网最全爱心代码仓库【火速领取爱心】

👨‍💻个人主页:花无缺 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 花无缺 原创 本文章收录于专栏 【代码实践】 目录🌙正文🌏部分效果在线演示🌏部分效果截屏🌸文末祝…

操作系统4小时速成:复习内存管理,内部碎片和外部碎片,页式存储管理,段式存储管理,段页式存储管理,虚拟内存,页面置换算法,LRU内存替换算法

操作系统4小时速成:复习内存管理,内部碎片和外部碎片,页式存储管理,段式存储管理,段页式存储管理,虚拟内存,页面置换算法,LRU内存替换算法 2022找工作是学历、能力和运气的超强结合体&#xff…

react面试题详解

React-Router怎么设置重定向&#xff1f; 使用<Redirect>组件实现路由的重定向&#xff1a; <Switch><Redirect from/users/:id to/users/profile/:id/><Route path/users/profile/:id component{Profile}/> </Switch>当请求 /users/:id 被重定…

显示控件——直线进度条

该控件是指定一个图标&#xff08;矩形长条&#xff09;&#xff0c;通过其滑动在水平方向或者垂直方向实现来调节指定存储空间的变量的效果。滑动范围对应变量地址数据&#xff0c;显示位置通过变量设定。可以配合“滑动调节”触摸控件进行设置。 位置信息&#xff1a;控件在工…

Android App接管手势处理TouchEvnet中单点触摸和多点触控的讲解及实战(附源码 超简单实用)

运行有问题或需要源码请点赞关注收藏后评论区留言~~~ 一、单点触摸 dispatchTouchEvent onInterceptTouchEvent onTouchEvent三个方法的输入参数都是手势事件MotionEvent&#xff0c;其中包含触摸动作的所有信息&#xff0c;各种手势操作都从MotionEvent中获取触摸信息并判断处…

Python3,5行代码,让你拥有无限量壁纸美图,终于告别手动下载了。

这里写目录标题1、引言2、代码实战2.1 手动下载2.2 代码批量下载3、总结1、引言 小屌丝&#xff1a;鱼哥&#xff0c; 你电脑桌面壁纸挺好看啊。 小鱼&#xff1a;那是&#xff0c; 毕竟我的审美观在这摆着呢。 小屌丝&#xff1a;你这话&#xff0c;让我不服… 小鱼&#xff…

STC51单片机30——单个数码管显示

#include<reg51.h> // 包含51单片机寄存器定义的头文件 /************************************************** 函数功能&#xff1a;延时函数&#xff0c;延时一段时间 ***************************************************/ void delay(void) { unsigned …

腾讯二面vue面试题总结

Vue2.x 响应式数据原理 整体思路是数据劫持观察者模式 对象内部通过 defineReactive 方法&#xff0c;使用 Object.defineProperty 来劫持各个属性的 setter、getter&#xff08;只会劫持已经存在的属性&#xff09;&#xff0c;数组则是通过重写数组7个方法来实现。当页面使…

在 Swift 图表中使用 Foudation 库中的测量类型

前言 在这篇文章中&#xff0c;我们将建立一个条形图&#xff0c;比较基督城地区自然散步的持续时间。我们将使用今年推出的新的Swift Charts 框架&#xff0c;并将看到如何绘制默认不符合 Plottable 协议的类型的数据&#xff0c;如 Measurement<UnitDuration>。 定义…

【附源码】计算机毕业设计JAVA校园社团管理平台演示录像2021

【附源码】计算机毕业设计JAVA校园社团管理平台演示录像2021 目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1…

537页15万字大数据治理体系、大数据可视化平台及应用方案

目录 第1章 前言 第2章 集团企业大数据现状分析 2.1、 基本现状 2.2、 总体现状 2.2.1、 行领导 2.2.2、 业务人员 2.3、 数据架构方面 2.3.1、 业务表现 2.3.2、 问题 2.4、 数据应用难题 2.4.1、 缺少统一的应用分析标准 2.4.1.1、 业务表现 2.4.1.2、 问题 2.4…

天天都在CRUD,你知道数据库如何工作的吗?

作为一个天天都在CRUD的程序员&#xff0c;你有没有想过&#xff0c;数据库是如何工作的&#xff1f; 今天&#xff0c;让我们从一个最最最简单的模型开始&#xff0c;揭开数据库神秘的一角。 对我们使用者而言&#xff0c;数据库就像是一个黑盒子&#xff0c;你可以往它里面…

神策 SCRM 正式发布,打通企业全域数据,聚焦私域精细化运营

随着企业微信能力的不断延展和客户接受度的持续提升&#xff0c;越来越多的企业开始基于企业微信生态搭建私域流量池&#xff0c;通过高粘性的专属服务和沟通提升客户满意度和转化效率。在企微私域运营过程中&#xff0c;他们发现&#xff1a; 管理难&#xff1a;客户分散在每位…

【Nginx】初识与环境准备

文章目录Nginx简介Nginx的优点及功能特性Nginx常用功能模块及组成Nginx系统环境准备Nginx安装方式介绍Nginx目录结构分析Nginx服务器启停命令方式一:Nginx服务的信号控制方式二:Nginx的命令行控制Nginx服务操作的问题Nginx配置成系统服务可能会出现的问题Nginx命令配置到系统环…

酷开科技 | 强势出圈,酷开系统一举突破媒介价值纵深

从起势到成熟&#xff0c;从无序到理性&#xff0c;从单一到多维&#xff0c;如今的OTT市场&#xff0c;早已是一个全新的舞台&#xff0c;不仅OTT的功能与服务承载更加丰富&#xff0c;产业的竞争维度也更加多元。踔厉奋发的OTT行业&#xff0c;在新的时代背景和产业环境下&am…

关于Python自动化的就业真相

作为近几年来特别受欢迎的编程语言之一&#xff0c;Python一直以来被众多行业内人士寄予厚望&#xff0c;今后有可能替代老牌霸主Java&#xff0c;成为新一代编程语言榜首。 为什么懂技术的人必学Python&#xff1f; 与其他语言相比&#xff0c;Python中的语言语法特别简单&a…

ABBYY FineReader PDF2023版本有什么新特点?

ABBYY FineReader PDF Windows版更加智能的 PDF 解决方案在数字化工作场所转换、编辑、共享和协作处理数字化工作场所中的 PDF 和扫描件。 在阅读某些扫描得到的PDF文档时&#xff0c;我经常因为它不可编辑而烦恼&#xff0c;直到我遇到了ABBYY。打开ABBYY FineReader PDF软件…

【MySQL进阶】深入理解B+树索引底层原理

【MySQL进阶】深入理解B树索引底层原理 文章目录【MySQL进阶】深入理解B树索引底层原理一、前言——没有索引的查找1、在一个页中的查找2、在很多页中查找3、总结二、索引1、一个简单的索引方案2、InnoDB中的索引方案3、B 树4、聚簇索引5、二级索引6、回表7、联合索引三、InnoD…