Nginx keeps looking for index.html

nginx, php

Solution

The problem was that despite my own vhosts configuration being in `/etc/nginx/conf.d/default.conf`, `nginx -T` (which shows nginx's loaded configuration) didn't show the file having been read.

The `include /etc/nginx/conf.d/*.conf;` directive was missing from my `nginx.conf`.

Problem

http://localhost is showing a 404 by nginx 1.13. When I look at the container logs I can see that nginx isn't passing the request off to php-fpm but is instead looking for an index.html. I can't figure out why it won't pass the request to php-fpm. /etc/nginx/conf.d/default.conf I've verified this file is loaded. ``` server { listen 80; root /var/www/html/public; index index.php; charset utf-8; # look for local files on the container before sending the request to fpm location / { try_files $uri /index.php?$query_string; } # nothing local, let fpm handle it location ~ [^/]\.php(/|$) { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass localhost:9000; fastcgi_index index.php; include fastcgi_params; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param QUERY_STRING $query_string; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length; # Httpoxy exploit (https://httpoxy.org/) fix fastcgi_param HTTP_PROXY ""; # allow larger POSTS for handling stripe payment tokens fastcgi_buffers 16 16k; fastcgi_buffer_size 32k; } } ``` Process list within the web container: ``` PID USER TIME COMMAND 1 root 0:00 s6-svscan -t0 /var/run/s6/services 33 root 0:00 s6-supervise s6-fdholderd 170 root 0:00 s6-supervise php-fpm 171 root 0:00 s6-supervise nginx 173 root 0:00 php-fpm: master process (/usr/local/etc/php-fpm.conf) 174 root 0:00 {run} /bin/sh ./run 177 root 0:00 nginx: master process nginx -g daemon off; 187 nginx 0:00 nginx: worker process 192 www-data 0:00 php-fpm: pool www 193 www-data 0:00 php-fpm: pool www 194 root 0:00 ps -ef ``` Container logs ``` web_1 | 2017/05/13 06:13:10 [error] 187#187: *1 "/etc/nginx/html/index.html" is not found (2: No such file or directory), client: 172.19.0.1, server: localhost, request: "GET / HTTP/1.1", host: "mysite.local" web_1 | 172.19.0.1 - - [13/May/2017:06:13:10 +0000] "GET / HTTP/1.1" 404 571 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36" ``` Update Removed all references to index.htm per a few of the below comments

Original source