这是我的docker-compose.yml
version: '2'
services:
nginx:
image: nginx:1.11.8-alpine
ports:
- "8081:80"
volumes:
- ./code:/usr/share/nginx/html
- ./html:/myapp
- ./site.conf:/etc/nginx/conf.d/site.conf
- ./error.log:/var/log/nginx/error.log
- ./nginx.conf:/etc/nginx/nginx.conf
这是site.conf
server {
listen 8081;
index index.html index.php;
server_name localhost;
error_log /var/log/nginx/error.log;
location /html {
root /myapp;
}
}
http://nginx-php-docker.local:8081/这是工作,在/ code文件夹
中显示文件index.html但它不适用于http://nginx-php-docker.local:8081/html
错误日志是: 2017/01/13 08:50:27 [错误] 7#7:* 4打开()" / usr / share / nginx / html / html"失败(2:没有这样的文件或目录),客户端:172.19.0.1,服务器:localhost,请求:" GET / html HTTP / 1.1",主机:" nginx-php-docker。当地:8081"
请告诉我错在哪里。
答案 0 :(得分:8)
您正在配置nginx容器以侦听site.conf
中的端口8081,这没有任何意义,因为该图像公开了端口80和443.
将您的site.conf
更改为:
server {
listen 80;
index index.html index.php;
server_name localhost;
error_log /var/log/nginx/error.log;
location / {
root /usr/share/nginx/html;
}
location /html {
alias /myapp;
}
}
docker-compose.yml
中的以下行:
volumes:
- ./site.conf:/etc/nginx/conf.d/default.conf
答案 1 :(得分:0)
将您的撰写文件编辑为,将HTML文件重定向到错误的目录
version: '2'
services:
nginx:
image: nginx:1.11.8-alpine
ports:
- "8081:80"
volumes:
- ./code:/var/www/html/
- ./html:/myapp
- ./site.conf:/etc/nginx/conf.d/site.conf
- ./error.log:/var/log/nginx/error.log
- ./nginx.conf:/etc/nginx/nginx.conf
答案 2 :(得分:-1)
在您的终端中运行命令:
sudo setenfonce 0
现在,重新运行docker命令。