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/
相关推荐
恋猫de小郭1 小时前
Flutter 3.35 发布,快来看看有什么更新吧
android·前端·flutter
chinahcp20082 小时前
CSS保持元素宽高比,固定元素宽高比
前端·css·html·css3·html5
gnip3 小时前
浏览器跨标签页通信方案详解
前端·javascript
gnip4 小时前
运行时模块批量导入
前端·javascript
hyy27952276844 小时前
企业级WEB应用服务器TOMCAT
java·前端·tomcat
逆风优雅4 小时前
vue实现模拟 ai 对话功能
前端·javascript·html
若梦plus4 小时前
http基于websocket协议通信分析
前端·网络协议
不羁。。4 小时前
【web站点安全开发】任务3:网页开发的骨架HTML与美容术CSS
前端·css·html
这是个栗子4 小时前
【问题解决】Vue调试工具Vue Devtools插件安装后不显示
前端·javascript·vue.js
姑苏洛言5 小时前
待办事项小程序开发
前端·javascript