Docker 【Nginx集群部署】
创始人
2024-01-29 14:48:18
0

目录

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;}}

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...