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

如何在Railway中修改Nginx配置解决413请求实体过大问题

解决Railway+Nixpacks部署Laravel的413请求实体过大问题

当使用Nixpacks在Railway部署Laravel应用遇到「413 Request Entity Too Large」错误时,无法直接修改系统默认的/etc/nginx/nginx.conf,可以通过以下两种自定义配置方式解决:

方法一:自定义完整Nginx配置文件

  1. 在项目根目录创建 .nixpacks.toml 文件,指定启动时使用自定义Nginx配置:
[phases.serve]
cmds = ["nginx -c nginx.conf"]
  1. 在项目根目录创建 nginx.conf 文件,写入包含client_max_body_size配置的完整Nginx配置,示例如下:
http {
    client_max_body_size 20M;
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    keepalive_timeout  65;

    server {
        listen 8080;
        root /app/public;
        index index.php index.html index.htm;

        location / {
            try_files $uri $uri/ /index.php?$query_string;
        }

        location ~ \.php$ {
            fastcgi_pass unix:/run/php-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
            include fastcgi_params;
        }
    }
}
  1. 将这两个文件提交到代码仓库,触发Railway重新部署即可。

方法二:添加Nginx配置片段覆盖参数

  1. 在项目根目录创建路径 config/nginx/conf.d/,并在其中创建 client_max_body_size.conf 文件,写入:
client_max_body_size 20M;
  1. 在项目根目录创建 .nixpacks.toml 文件,添加安装阶段的命令,将自定义配置复制到Nginx的配置目录:
[phases.install]
cmds = ["mkdir -p /etc/nginx/conf.d && cp config/nginx/conf.d/client_max_body_size.conf /etc/nginx/conf.d/"]
  1. 提交代码并重新部署,Nginx会自动加载conf.d目录下的配置,覆盖默认的请求体大小限制。

补充:同步PHP配置限制

除了Nginx的配置,还需要确保PHP的上传参数匹配,在项目根目录创建 .user.ini 文件:

upload_max_filesize = 20M
post_max_size = 20M

这样可以避免PHP层面的上传大小限制报错。

内容的提问来源于stack exchange,提问作者Nil Suria

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 12:50:10