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/
相关推荐
yuanlulu2 小时前
复制docker根目录遇到的权限问题
docker·容器
斯普信专业组2 小时前
2025 最好的Coze入门到精通教程(下)
前端·javascript·ui
努力一点9482 小时前
安装docker可视化工具 Portainer中文版(ubuntu上演示,所有docker通用) 支持控制各种容器,容器操作简单化 降低容器门槛
linux·运维·服务器·人工智能·ubuntu·docker·容器
张一西2 小时前
docker 容器学习
学习·docker·容器
烟雨书信2 小时前
Docker中的Compose, 私库 registry,使用私库 Harbor
docker·容器·eureka
moxiaoran57532 小时前
使用docker安装MongoDB
mongodb·docker·容器
伏加特遇上西柚3 小时前
Nginx的location匹配规则
android·运维·nginx
德育处主任3 小时前
p5.js 圆弧的用法
前端·javascript·canvas
Arvin6274 小时前
Nginx IP授权页面实现步骤
服务器·前端·nginx
xw55 小时前
Trae安装指定版本的插件
前端·trae