[英]Docker Nginx connect to PHP-FPM on private docker network
我正在尝试将我的 docker nginx 容器连接到我的 docker php7 容器。 我都连接到专用桥接网络,因为我希望我的 php 引擎脱机。 启动我的 nginx 容器时出现错误:
nginx: [emerg] host not found in upstream "php7" in
etc/nginx/conf.d/default.conf:11
我的 php 容器命令(先运行):
docker run -d \
--name php7 \
-v /php7:/usr/local/etc \
-v /www_data:/www \
--network=priv-bridge-net \
-p 9000:9000 \
php:7.0.24-fpm
我的 nginx 命令:
docker run -d \
--name nginx \
-v /nginx_conf:/etc/nginx \
-v /www_data:/usr/share/nginx/html \
--network=priv-bridge-net \
nginx:1.13.5
我的 nginx 配置:
server {
index index.php index.html;
server_name test;
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
root /usr/share/nginx/html;
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass php7:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
请帮我弄清楚我做错了什么。 谢谢! 第二个问题,我可以从 php 容器中删除 -p 9000:9000 吗,因为它与 nginx 服务器在同一个桥接网络上。
好的,所以我上面的问题是正确答案。 我只是在启动容器的顺序方面遇到问题(我也有反向代理和其他代理,这有点令人困惑)。
对于任何想要将 docker nginx 连接到 docker php 的人来说,这是正确的设置:
我的 php 容器命令(先运行):
docker run -d \
--name php7 \
-v /php7:/usr/local/etc \
-v /www_data:/www \
--network=priv-bridge-net \
-p 9000:9000 \
php:7.0.24-fpm
我的 nginx 命令:
docker run -d \
--name nginx \
-v /nginx_conf:/etc/nginx \
-v /www_data:/usr/share/nginx/html \
--network=priv-bridge-net \
nginx:1.13.5
我的 nginx 配置:
server {
index index.php index.html;
server_name test;
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
root /usr/share/nginx/html;
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass php7:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.