2016-10-11 2 views
0

Я делаю попытку сделать http://example.com подавать http://example.com/home.html из /home/ubuntu/mysitedir/home.html.директива корня nginx, вызывающая 404

У меня есть следующий файл conf, который успешно перенаправляет все на https и прокси на uwsgi. Переадресация http-> https работает нормально, а прокси-сервер uwsgi работает, но http (s): //example.com/, http (s): //example.com/home.html, http (s): // example.com/index.html и http (s): //example.com/index.htm все 404

Любые указатели на то, что я могу попробовать?

Вот мой конф файл:

server { 
    listen 80; 
    server_name example.com; 
    return 301 https://$server_name$request_uri; 
    root /home/ubuntu/mysitedir/; 
    index home.html; 
} 

server { 
    listen 443 ssl; 

    server_name example.com; 
    ssl_certificate /etc/nginx/ssl/example_combined.crt; 
    ssl_certificate_key /etc/nginx/ssl/www.example.com.key; 
    root /home/ubuntu/mysitedir/; 
    index home.html; 

    location /images/ads { 
     alias /home/ubuntu/mysitedir/images/ads/; 
    } 

    location /images { 
     alias /home/ubuntu/mysitedir/images/; 
    } 

    location /static { 
     alias /home/ubuntu/mysitedir/static/; 
    } 

    location/{ 
     alias /home/ubuntu/mysitedir/; 
     include uwsgi_params; 
     uwsgi_pass unix:/tmp/mysitedir.sock; 
    } 
} 

Спасибо.

ответ

0

location / является всеобщим. Вы можете попробовать try_files директиву, как это:

location @wsgisite { 
    include uwsgi_params; 
    uwsgi_pass unix:/tmp/mysitedir.sock; 
} 

location/{ 
    index home.html; 
    try_files $uri $uri/ @wsgisite; 
} 

Любой вещь, приходящая в базовом место будет первым проверить, если это файл или каталог с индексом (home.html) файл в нем, и если нет, то передайте его на @wsgisite.

Это также должно привести к тому, что остальные три директивы местоположения будут обнуляться, так как nginx будет проверять файлы перед тем, как передать их в блок wsgi.

+0

Спасибо, miah. Я пробовал это, с корневой директивой и без нее. Кроме того, если я помещаю index.htm и index.html в/home/ubuntu/mysitedir/и/usr/share/nginx/html /, http (s): //example.com/, http (s)://example.com/home.html, http (s): //example.com/index.html и htt (s) p: //example.com/index.htm все 404 –

+0

@stubblejumper только что обновлен тем, что Я думаю, будет работать. – miah

+0

Он отлично работает. Спасибо за вашу помощь. –

Смежные вопросы