Ответы пользователя по тегу Nginx
  • Правильное указание servername Настройка Nginx как Frontend к Web-серверу Apache?

    Tark
    @Tark
    Pyramid'альный мир
    Указывать нужно адрес вашего сайта, это и будет "правильный" server_name.

    В примерах конфигурации серверов, обрабатывающих все запросы, встречается странное имя “_”:
    server {
    listen 80 default_server;
    server_name _;
    return 444;
    }

    Оно не является каким-то особенным, это просто одно из множества некорректных доменных имён, которые никогда не пересекутся ни с одним из реальных имён. С тем же успехом можно использовать имена типа “--” и “!@#”. nginx.org/ru/docs/http/server_names.html
    Ответ написан
    Комментировать
  • Nginx rewrite - как получить значение нескольких переменных?

    Tark
    @Tark
    Pyramid'альный мир
    Есть три варианта решения этой проблемы, два из них одинаково плохи, а третий универсален.

    location / {
        rewrite ^(\d+)/(\d+)$ /index.php?a=$1&b=$2 last;
        .... 
        try_files $uri $uri/ /index.php?a=$uri;
    }

    Это плохо тем, что для КАЖДОГО запроса будет проверяться, не соответствует ли строка одному из заявленных регекспов. Для каждого запроса, включая стили, скрипты и статику. Насчёт last в рейврайте не уверен.

    location ~* /(\d+)/(\d+) {
        rewrite ^(\d+)/(\d+)$ /index.php?a=$1&b=$2 last;
    }
    
    location / {
        try_files $uri $uri/ /index.php?a=$uri;
    }

    Этот способ плох тем, что придётся повторять регексп в локейшне. Насчёт last в реврайте опять же не уверен.

    location / {
        try_files $uri $uri/ /index.php?a=$uri;
    }

    Самый уверсальный способ. Единая точка входа, роутингом рулит PHP. Идеально.
    Ответ написан
    2 комментария