我有一个基于 php 和 nginx 图像的 Web 应用程序......一切都很好,直到我在 PHP 配置下设置了一个命令:
command: /usr/bin/supervisord -c /symfony/supervisord.conf
docker-compose.yml
version: '2'
services:
php:
build: docker/php
tty: true
volumes:
- '.:/symfony'
command: /usr/bin/supervisord -c /symfony/supervisord.conf
nginx:
image: nginx:1.11
tty: true
volumes:
- './public/:/symfony'
- './docker/nginx/default.conf:/etc/nginx/conf.d/default.conf'
ports:
- '80:80'
links:
- php
Run Code Online (Sandbox Code Playgroud)
这是我的 default.conf
server {
server_name ~.*;
location / {
root /symfony;
try_files $uri /index.php$is_args$args;
}
location ~ ^/index\.php(/|$) {
client_max_body_size 50m;
fastcgi_pass php:9000;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME /symfony/public/index.php;
}
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
}
Run Code Online (Sandbox Code Playgroud)
这是我的 supervisord.conf
[unix_http_server]
file=/tmp/supervisor.sock
[supervisord]
logfile=/tmp/supervisord.log
pidfile=/var/run/supervisord.pid
nodaemon=true
Run Code Online (Sandbox Code Playgroud)
Nginx 日志显示我:
nginx_1 | 2018/10/02 00:42:36 [error] 11#11: 1 connect() failed (111: Connection denied) 连接上游,客户端:172.23.0.1,服务器:~。,请求:“GET / HTTP/1.1”,上游:“fastcgi://172.23.0.2:9000”,主机:“127.0.0.1”
如我们所见,nginx 报告 502 Bad Gateway 错误。如果我删除最后一行 CMD,一切正常。如果我删除该行并通过访问docker-compose exec php bash并手动启动该命令,则一切正常。
知道为什么添加该命令会导致 502 Bad Gateway 吗?
好的,我找到了解决方案这是主管的问题。因为每次我们启动我们的服务主管时,它php-fpm service都会自动停止,这就是为什么它应该添加一个配置来重新启动,php-fpm但这次是从主管配置中重新启动。
[program:php-fpm]
command = /usr/local/sbin/php-fpm
autostart=true
autorestart=true
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
638 次 |
| 最近记录: |