docker – 与Nginx合作是行不通的

这是我的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 /这是工作,显示文件index.html里面/代码文件夹

但它不能与http://nginx-php-docker.local:8081 / html一起工作

错误日志是:2017/01/13 08:50:27 [error] 7#7:* 4 open()“/ usr / share / nginx / html / html”失败(2:没有这样的文件或目录) :172.19.0.1,server:localhost,请求:“GET / html HTTP / 1.1”,主机:“nginx-php-docker.local:8081”

请告诉我我错在哪里。

您正在configurationnginx容器在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