【发布时间】:2020-04-06 15:56:40
【问题描述】:
使用带有 Docker 的 Windows 10,我正在尝试访问运行 nginx 的 Linux 容器。我正在尝试通过网络浏览器访问我的本地主机(或通过 IP 地址),但我得到“无法访问此页面”。在我的 nginx 容器中,如果我尝试使用 CURL 访问 localhost 或直接 ip,我会得到“连接被拒绝”。我是使用 Windows 进行 docker 的完全初学者,而这简直就是一场噩梦!试过localhost:8080和172.18.0.4:8080(就是docker inspect nginx_1中显示的IP)
这是我的 docker-compose.yml
version: '2'
volumes:
database_data:
driver: local
services:
nginx:
image: nginx:latest
ports:
- 8080:80
volumes:
- ./docker/nginx/default.conf:/etc/nginx/conf.d
volumes_from:
- php
php:
build: ./docker/php
expose:
- 9000
volumes:
- .:/var/www/html
mysql:
image: mysql:latest
expose:
- 3306
volumes:
- database_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: secret
MYSQL_DATABASE: project
MYSQL_USER: project
MYSQL_PASSWORD: project
这是我的 nginx default.conf 文件:
server {
listen 80 default_server;
root /var/www/html/public;
index index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
sendfile off;
client_max_body_size 100m;
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass php:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param APPLICATION_ENV development;
fastcgi_intercept_errors off;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
}
location ~ /\.ht {
deny all;
}
}
我的配置中缺少什么阻止我从主机访问我的 index.php 文件?
非常感谢!
【问题讨论】: