gpt4 book ai didi

symfony - 无法访问本地主机上的 docker nginx 镜像 - OSX

转载 作者:行者123 更新时间:2023-12-02 20:15:03 25 4
gpt4 key购买 nike

我得到了一个包含使用 Docker/Symfony 的 PHP 应用程序的存储库。我能够成功运行docker-compose up --build看起来一切都在成功运行。当我运行 docker ps --all我看到了我所期待的一切

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
65d7f22b6b13 nginx "nginx -g 'daemon ..." 16 minutes ago Up 7 minutes 0.0.0.0:8086->80/tcp symfony_nginx_1
4fa3c58d1eea symfony_fpm "docker-php-entryp..." 16 minutes ago Up 7 minutes 9000/tcp symfony_fpm_1
7316d40b1b8c mysql:5.5 "docker-entrypoint..." 16 minutes ago Up 7 minutes 3306/tcp symfony_mysql_1
cac0757e2f6d redis:latest "docker-entrypoint..." 16 minutes ago Up 7 minutes 6379/tcp symfony_redis_1

当我尝试访问 localhost:8086在我的浏览器上,我的连接被拒绝。我虽然也许我的本地配置可能是 janky,并在另一台机器上尝试了这个,结果相同。我试图通过运行 docker logs 65d7f22b6b13 来获取 nginx 镜像的日志但它什么也不返回。

我对 docker/nginx 和端口转发有什么不理解的地方吗?下面是我的 docker 配置
version: '2'

services:
nginx:
image: nginx
ports:
- "8086:80"
volumes:
- ./:/var/www/symfony
- ./docker/nginx/nginx.conf:/etc/nginx/conf.d/default.conf
links:
- fpm

fpm:
build: docker/php-fpm/
links:
- redis
- mysql
volumes:
- ./:/var/www/symfony
- ./docker/php-fpm/php-ini-overrides.ini:/usr/local/etc/php/conf.d/99-overrides.ini

mysql:
image: mysql:5.5
environment:
MYSQL_DATABASE: devdb
MYSQL_USER: devdb
MYSQL_PASSWORD: devdb
MYSQL_ROOT_PASSWORD: root
volumes:
- ./backup.sql.gz:/docker-entrypoint-initdb.d/backup.sql.gz

redis:
image: redis:latest

我在 OSX 10.11.6 - 感谢任何帮助。 Symfony 和 Docker 对我来说是新的。

编辑 下面是我的 nginx 配置文件 - 我更新了 listen使用 127.0.0.1:8086但仍然可以使用 0.0.0.0 查看它当我运行 docker ps
server {
listen 127.0.0.1:80 default;

client_max_body_size 108M;

access_log /var/log/nginx/symfony.access.log;

root /var/www/symfony/web;

rewrite ^/index\.php/?(.*)$ /$1 permanent;

try_files $uri @rewriteapp;

location @rewriteapp {
rewrite ^(.*)$ /index.php/$1 last;
}

# Deny all . files
location ~ /\. {
deny all;
}

location ~ ^/index\.php(/|$) {
fastcgi_pass fpm:9000;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
fastcgi_index index.php;
send_timeout 1800;
fastcgi_read_timeout 1800;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PHP_VALUE "error_log=/var/log/nginx/routemap3_php_errors.log";
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
include fastcgi_params;
}

# Statics
location /(bundles|media) {
access_log off;
expires 30d;
try_files $uri @rewriteapp;
}

}

最佳答案

你的答案在你的问题中:

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
65d7f22b6b13 nginx "nginx -g 'daemon ..." 16 minutes ago Up 7 minutes 0.0.0.0:8086->80/tcp symfony_nginx_1

现在,如果您阅读专栏 PORTS仔细你会看到 0.0.0.0:8086->80/tcp ,这意味着您的本地循环 0.0.0.0在端口 8086映射到端口 80您的 ngnix容器,这与 tcp协议(protocol)。

因此,您要访问的正确网址是 http://0.0.0.0:8086/

您还必须更改您的 NGINX 配置以适应它,它应该是:
listen 0.0.0.0:80;

甚至更好:
listen *:80;

关于symfony - 无法访问本地主机上的 docker nginx 镜像 - OSX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44032246/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com