0304nginx配置运行-docker-macos aarm64

1 容器运行

  • 最新版nginx适配,直接拉取镜像

    docker pull nginx
    
  • 运行容器

    docker run \
    --name=nginx-xc \
    -v Users/gaogzhen/devTools/java/projects/full/xuecheng/xc-ui-pc-static-portal:/usr/share/nginx/html \
    -v /Users/gaogzhen/data/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
    -v /Users/gaogzhen/data/docker/nginx/logs:/var/log/nginx \
    -p 80:80 \
    -d nginx
    
    • Users/gaogzhen/devTools/java/projects/full/xuecheng/xc-ui-pc-static-portal为我存放网站目录的路径,该为自己的
    • nginx.conf从随意运行的nginx容器中复制的;
    • 外部挂载目录或者文件需要自己创建
    • 我这里只挂载了网站家目录,nginx配置文件,日志目录;nginx.conf中没加载 *.conf所以没挂载其他文件或者目录;

3 nginx常见报错

3.1 403 Forbidden

第一步:检查挂载目录及文件权限,没啥问题。

第二步:Nginx打开目录浏览功能,即在整个或者某个单独目录开启

# 整个虚拟主机目录开启
location / {
autoindex on;
# ....
}

3.2 404 connect() failed (111: Connection refused) while connecting to upstream

  • 背景简介:docker运行nginx,前台首页登录需要通过后端网关端口63010获取图片验证码(本地部署),为解决跨域问题在nginx设置了代理。

报错如下图3.2-1所示:

在这里插入图片描述

2023/06/14 07:16:51 [error] 24#24: *4 connect() failed (111: Connection refused) while connecting to upstream, client: 172.18.0.1, server: www.51xuecheng.cn, request: "POST /api/checkcode/pic HTTP/1.1", upstream: "http://127.0.0.1:63010/checkcode/pic", host: "www.51xuecheng.cn", referrer: "http://www.51xuecheng.cn/sign.html?returnUrl=aHR0cDovL3d3dy41MXh1ZWNoZW5nLmNuL3JlZ2lzdGVyLmh0bWw="
  • 错误原因:nginx配置的proxy_pass 代理服务器地址,docker 中nginx找不到,即nginx所在docker子网访问不到你所配置的目标服务ip地址

  • 解决方案:把代理服务器(主机)地址设置为服务所在主机地址或者公网地址或者本机IP地址

    ifconfig
    
    • ifconfig可查看本地地址
  • nginx.config配置如下所示:

            
    server {   
     # ...省略
      #api
      location /api/ {
              proxy_pass http://gatewayserver/;
      }
    }
    #后台网关
    upstream gatewayserver{
        server 192.168.0.103:63010 weight=10;
    }
    
    • proxy_pass htt://直接服务主机地址(或者备案域名或者本地ip地址或者upstream配置名称)

    • 如果跟upstream配置名称的话,upstream中server里面的主机地址需要为公网ip或者本机ip,不能是localhost或者127.0.0.1,如果是localhost或者127.0.0.1相当于nginx访问nginx运行容器所在的docker子网主机ip地址了,我们的服务当然不存在。

      正常运行如下图3.2-2所示:

      在这里插入图片描述

    在这里插入图片描述

    持续更新中……

结语

欢迎小伙伴一起学习交流,需要啥工具或者有啥问题随时联系我。

❓QQ:806797785

[1]mac nginx 403 Forbidden 问题解决[CP/OL]

Docker是一个开源的容器化平台,它的目标是帮助开发者更轻松地构建、发布和运行应用程序。Docker的主要特点是轻量级和快速,通过将应用程序和其依赖项打包成一个可移植的容器,可以在任何支持Docker的环境中运行。使用Docker可以实现应用程序的快速部署、扩展和管理。 Nginx是一个高性能的Web服务器和反向代理服务器,它以其卓越的性能和可扩展性而闻名。Nginx可以同时处理成千上万个并发连接,具有很低的内存消耗,适用于高负载的Web应用场景。Nginx还支持负载均衡、动态内容缓存和HTTP/2协议等高级功能。 ARM是一种芯片架构,常用于移动设备和嵌入式系统。ARM架构的设备具有低功耗、高效能和低成本的特点。近年来,随着移动互联网的快速发展,越来越多的应用开始部署在ARM架构的设备上。 将DockerNginxARM结合使用,可以实现在ARM架构的设备上运行高性能的Web服务器和反向代理服务器。通过将Nginx打包成一个Docker容器,并在ARM平台上部署运行,可以有效地利用ARM的低功耗、高效能和低成本特性。在ARM平台上使用Docker部署Nginx还可以实现应用程序的快速部署和扩展,提高开发效率和运行效率。 总之,通过使用Docker容器化Nginx,并在ARM平台上部署,可以实现高性能的Web服务器和反向代理服务器,提高应用程序的部署效率和运行效率。这对于移动设备和嵌入式系统等ARM架构的设备来说,具有重要的意义。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gaog2zh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值