Задать вопрос
Vova316
@Vova316

Как настроить nginx для подсайтов?

Привет.
Подскажите как правильно настраивать nginx (с одним файлом конфигурации).
мне нужно, что бы http автоматически перенаправлялся на httpS
по адресу mysite/ находится сайт 1 - это просто прокси на порт 8000, где установлен другой веб-сервер
по адресу mysite/bugs находится сайт 2. Он сделан как сайт на PHP - ему нужен /var/run/php/php-fpm.sock.
Но пока временно, я вместо сайта 2 разместил только файл index.html для тестов. Всем файлам и папкам сайта 2 я дал владельца и группу www-data.

Я пробую настроить файл /etc/nginx/sites-available/mysite.
Потом создаю линк, проверяю правильность конфига и перезапускаю nginx.

server {
    listen 80;
    listen [::]:80;
    server_name mysite.org;
    return 301 https://mysite.org$request_uri;
}

server {
    listen 443 ssl http2;
    listen [::]:443;
    server_name mysite.org;
    access_log /var/log/nginx/mysite.org-access.log;
    error_log /var/log/nginx/mysite.org-error.log;

    keepalive_timeout 60;
    ssl_certificate /etc/letsencrypt/live/mysite.org/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/mysite.org/privkey.pem;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:EC..........................................
    ssl_dhparam /etc/ssl/certs/dhparam.pem;
    add_header Strict-Transport-Security 'max-age=604800';

    location / {
        proxy_pass http://localhost:8000/;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-IP $remote_addr;
    }

    location /bugs/ {
        root /home/pi/flyspray;
        index index.html;
    }
}


И это почему-то не работает! Работает редирект на hhtpS и сайт 1. Не работает сайт 2!
Ну вроди структура конфига правильная - 443 порт, а потом запросы перечисляются (в location).

Права:
папка home drwxr-xr-x root root
папка pi drwxr-xr-x pi pi
папка flyspray drwxrwxr-x www-data www-data
файл index.html -rwxr-xr-x www-data www-data

В логах сервера mysite.org-access.log:
"GET / HTTP/2.0" 200 2241 "-" "
"GET /bugs HTTP/2.0" 404 133 "https://mysite.org/" "
"GET /bugs HTTP/2.0" 404 133 "https://mysite.org/" "
"GET / HTTP/1.1" 400 264 "-" "
"GET /bugs HTTP/2.0" 404 133 "https://mysite.org/" "

Что я делаю не так?
Спасибо.
  • Вопрос задан
  • 231 просмотр
Подписаться 1 Средний 7 комментариев
Пригласить эксперта
Ответы на вопрос 2
ky0
@ky0 Куратор тега Nginx
Миллиардер, филантроп, патологический лгун
/bugs будет обрабатываться первым локейшеном, потому что во втором у вас зачем-то завершающий слэш.

Хотите сделать заглушку - просто добавьте return 200 OK;.
Ответ написан
Комментировать
@barolina
turn coffee into code
замените, на это

location /bugs/ {
          alias /home/pi/flyspray/;
          index index.html;
    }


обращаю внимание, на завершающий слэш, nginx ищет урлы по регулярке

с root, путь до index.html: /home/pi/flyspray/bugs/index.html

nginx.org/en/docs/beginners_guide.html
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы