docker nginx 部署前端踩坑记录

文章目录

  • [坑点1:localhost 与127.0.0.1](#坑点1:localhost 与127.0.0.1)

坑点1:localhost 与127.0.0.1

复制代码
server {
    listen       80 default_server;
    client_max_body_size 20M;

    # 记录访问日志和错误日志
    access_log  /var/log/nginx/host.access.log  main;
    error_log  /var/log/nginx/error.log  warn;  # 降低日志级别至warn,减少非关键错误记录

    # 支持HTTP/1.1
    proxy_http_version 1.1;
    # 禁止Nginx自动添加Connection: close头部,保持长连接
    proxy_set_header Connection "";

    # 静态资源服务配置
    location / {
        alias /etc/nginx/www-data/dist/;
        index  index.html;
        try_files $uri $uri/ /index.html =404;  # 添加=404表示找不到文件时返回404状态码
    }

    # API 代理转发配置
    location /backend/ {
        proxy_pass http://192.168.102.76:8000/backend/;  ### 这是一个正确示例,但这里一定不能写localhost和127.0.0.1

        # 建议启用请求超时设置以防止长时间无响应
        proxy_connect_timeout 60s;
        proxy_send_timeout 60s;
        proxy_read_timeout 60s;

        # 关闭请求缓冲,适合文件上传场景
        proxy_request_buffering off;

        # 设置转发头信息
        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_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }

}

这个nginx的配置文件最终是挂载到了nginx容器内部,所以此处的 proxy_pass 配置为http://127.0.0.1:8000/backend/; 则是在容器内部的回环地址, 而不是你所期望的宿主机的回环地址,所以前端连不上后端。

  • 若前端使用nginx容器代理请求,则一定不能填写的示例有:
  • 若 后端服务 同样是容器启动的, 那么这里可以写的示例有:
    • http://【宿主机IP地址】:8000/backend/
    • http://【后端容器名称或服务名称或hostname】:8000/backend/
相关推荐
deli0071 小时前
Redis 缓存穿透、击穿、雪崩:9 组流量实测数据库怎么被打穿
前端
江华森1 小时前
5Mbps 小水管也能扛:K3s 上 k6 压测 + HPA 弹性伸缩实测
前端
shuangyueliao1 小时前
103 个小游戏的商店素材,我一张图都没手动做:截图 / 封面 / 打包 / 提审全自动
前端
ZhengEnCi1 小时前
前端项目为什么需要一份统一的 theme.css:用 CSS 变量管住全局样式与主题切换
前端·css·前端工程化
wordbaby1 小时前
一次微信小程序 `web-view` 跳转原生页回跳后 H5 白屏的排查与修复(Hash 路由污染)
前端
用户721880438351 小时前
密码骰子:结合AIUI在眼镜上生成一串16位密码
前端
江华森2 小时前
全链路可观测落地记:kube-prometheus-stack 在 K3s 上的 8 个坑与一整套修复脚本
前端
deli0072 小时前
27 寸 4K 开 125% 为什么发虚?PPI 和缩放一次算清
前端
广州华水科技2 小时前
当大坝面临风险时,如何有效实施单北斗GNSS变形监测?
前端
AiMan3 小时前
Poe还是不可以导出左侧所有对话,只能单条内容导出,方法不对吗
前端