最近 AWS 开始使用 Amazon Linux 2 分发 Elastic Beanstalk PHP 环境,它放弃了 apache 以支持 Nginx,我一直在尝试正确配置我的 Laravel 项目以使其正常工作,我过去只需要添加一些 .htaccess 配置即可是吗,在 Nginx 上我似乎无法弄清楚如何让我的应用程序工作,我的第一个问题是反向代理端口,我通过将 PORT 环境变量设置为 80 来修复它,但是当我尝试访问任何路由时除了 / 之外的 URL,它给了我一个 404 Not Found 错误。所以我尝试将 .ebextension/Nginx/nginx.conf 添加到我的项目中,其中包含以下内容:user nginx;error_log /var/log/nginx/error.log warn;pid /var/run/nginx.pid;worker_processes auto;worker_rlimit_nofile 33282;events { worker_connections 1024;}http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; include conf.d/*.conf; map $http_upgrade $connection_upgrade { default "upgrade"; } server { listen 80 default_server; root /var/app/current/public; location / { try_files $uri $uri/ /index.php?$query_string; } location = /favicon.ico { access_log off; log_not_found off; } location = /robots.txt { access_log off; log_not_found off; } error_page 404 /index.php; location ~ \.php$ { fastcgi_pass unix:/var/run/php-fpm/www.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; include fastcgi_params; } location ~ /\.(?!well-known).* { deny all; } }}但它没有用,我试图检查实例上是否应用了配置,但 /etc/Nginx/Nginx.conf 没有改变。如何通过 .ebextensions 配置 Elastic Beanstalk PHP Amazon Linux 2 以使 Nginx 与无状态 Laravel 应用程序一起工作?
2 回答

斯蒂芬大帝
TA贡献1827条经验 获得超8个赞
我在 /etc/nginx/conf.d/elasticbeanstalk/ 中手动添加了一个文件,并将其命名为 laravel.conf。laravel.conf 文件包含:
location / { try_files $uri $uri/ /index.php?$query_string; gzip_static on; }
完整解决方案:
https://forums.aws.amazon.com/thread.jspa?threadID=321787&tstart=0

慕田峪9158850
TA贡献1794条经验 获得超8个赞
正确的方法是在里面添加这个文件
.platform/nginx/conf.d/elasticbeanstalk/laravel.conf
这是文档的链接:
https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/platforms-linux-extend.html
- 2 回答
- 0 关注
- 142 浏览
添加回答
举报
0/150
提交
取消