【问题标题】:How to update the NGINX timeout setting for a Magento 2 Cloud Docker setup如何更新 Magento 2 Cloud Docker 设置的 NGINX 超时设置
【发布时间】:2022-09-23 02:28:26
【问题描述】:
我正在使用 Magento 2.4.2 (Adobe Commerce Enterprise Edition) 并使用 Magento Cloud Docker 设置设置了一个本地站点。我想将 nginx 超时设置更改为足够长,以让我正在测试的页面运行只要需要,但仍会在前端的浏览器上呈现页面。
我可以在 docker-compose.yml 文件中设置一个特定的环境变量来完成此操作吗?我在docker-environment 或Dockerfile 文件中没有看到任何可以进行此更新的内容。我是否只需将我自己的自定义行添加到这些文件中的任何一个来更新超时设置?
标签:
docker
nginx
magento
magento2
【解决方案1】:
如果你使用magento cloud docker development,不,你不能不覆盖 docker 图像。
如果要设置 nginx 超时,则需要覆盖 nginx docker 映像并将其包含在 docker-compose.override.yml 中。这是步骤:
- 复制
vendor/magento/magento-cloud-docker/images/nginx到.docker/images/nginx,即喜欢this
- 编辑
.docker/images/nginx/1.19/etc/nginx.conf和.docker/images/nginx/1.19/etc/vhost.conf
- 创建
docker-compose.override.yml,如this
- 并运行
docker-compose up --build --force-recreate --no-deps --remove-orphans -d
查看this link 获取完整示例。
注意:.docker/config.env 文件将在您运行 ./vendor/bin/ece-docker 'build:compose' 时被覆盖
【解决方案2】:
根据 Adobe Commerce 支持,这在他们的云平台上是不可能的,这是非常不幸的
在测试的本地环境方面,比上面 Deki 提出的方法更快更hack的方法如下:
ssh 进入你的 tls docker 容器
编辑 /etc/nginx/conf.d/default.conf 文件,如下所示:
服务器 {
听 80;
听 443 ssl;
server_name _;
ssl_certificate /etc/nginx/ssl/magento.crt;
ssl_certificate_key /etc/nginx/ssl/magento.key;
**# Add the 3 lines below**
proxy_read_timeout NEW_TIMEOUT_VALUE;
proxy_connect_timeout NEW_TIMEOUT_VALUE;
keepalive_timeout NEW_TIMEOUT_VALUE;
location / {
proxy_pass http://varnish:80;
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_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
}
}