You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Amazon Linux下Rails API应用Nginx配置403错误求可用示例

解决Rails API应用Nginx 403错误的配置方案

看起来你的API应用Nginx配置踩了几个导致403的小坑,我帮你梳理下核心问题并给出可直接运行的配置方案:

核心问题拆解

  • 路由匹配正则错误:原配置的location ~ ^api/v1/(.+)$缺少了开头的斜杠/,而HTTP请求的URL是从根路径开始的(比如/api/v1/users),这个正则根本匹配不到你的API请求,导致Nginx尝试访问root目录下的文件,进而触发403。
  • 权限配置缺失:Nginx运行用户需要对Rails应用的public目录以及Puma socket文件有读写权限,否则也会返回403。
  • 静态文件/默认请求处理逻辑缺失:当访问非API路径时,Nginx会尝试读取root目录的index文件,如果文件不存在或权限不足,同样会返回403。

修正后的Nginx配置

upstream cb_api {
  server unix:///var/www/html/counterpoint-api/shared/sockets/puma.sock;
  # 可选:添加上游连接优化配置,提升API响应效率
  keepalive 32;
}

server {
  listen 80 ;
  listen [::]:80;
  server_name cb-api.ariki.online;

  # 设置Rails应用的静态文件根目录
  root /var/www/html/counterpoint-api/public;
  index index.html index.htm;

  # 优先处理静态文件(如果API应用有需要访问的静态资源)
  location / {
    try_files $uri $uri/index.html @api_fallback;
  }

  # 匹配所有/api/v1/开头的API请求,修正正则确保正确匹配
  location ~ ^/api/v1/ {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_set_header X-Forwarded-Proto $scheme; # 后续配置HTTPS时会用到
    proxy_pass http://cb_api;
    proxy_redirect off;

    # 配置代理超时,适配Rails应用的处理速度
    proxy_connect_timeout 30s;
    proxy_send_timeout 30s;
    proxy_read_timeout 30s;
  }

  # 非API且非静态文件的请求,转发给Rails应用处理
  location @api_fallback {
    proxy_pass http://cb_api;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
  }
}

额外排查步骤

  1. 检查Nginx错误日志:执行tail -f /var/log/nginx/error.log,查看具体的403触发原因(是权限问题还是文件不存在)。
  2. 验证Socket文件权限:执行ls -l /var/www/html/counterpoint-api/shared/sockets/puma.sock,确保Nginx运行用户(通常是nginx或www-data)对该socket有读写权限。可以通过调整Puma的socket权限为775,或者将Nginx用户加入到Puma运行用户的用户组来解决。
  3. 重启服务:修改配置后,执行sudo systemctl restart nginx和重启你的Rails API应用(确保Puma socket正常生成)。

内容的提问来源于stack exchange,提问作者Peter Van de Put

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 09:01:39