Как мне указать Nginx «игнорировать» определенные URL-адреса или страницы на моем веб-сайте?
Я запускаю сайт Drupal, где анонимные посетители обслуживаются через NGINX, а зарегистрированные пользователи обслуживаются через Apache. Мы делаем это, чтобы уменьшить нагрузку и лучше масштабироваться.
Он отлично работает, за исключением того, что с тех пор, как мы установили nginx, большое количество форм Drupal больше не работает.
Например, перед установкой Nginx вы создали новую статью, затем нажали «изменить» и отредактировали статью. Вы можете нажать «Сохранить», и ваши изменения в статье будут сохранены.
После настройки nginx, когда вы вносите изменения и затем нажимаете «сохранить», страница просто обновляется, но теперь со вставленным в URL-адресом «nginx-index.php». И ваши изменения в форме фактически не были сохранены в базе данных.
Итак, если вы пойдете редактировать статью, вы попадете на domain.com/node/##/edit или что-то в этом роде. Когда вы попытаетесь сохранить изменения в форме, вы окажетесь по адресу domain.com/nginx-index.php?q=node/##/edit. И ваши изменения не сохранятся.
Есть способ обойти это, но только для пользователей с правами администратора. Если вы перейдете в форму, в которой возникает эта проблема, затем закомментируйте или закомментируйте три строки в нашем файле settings.php, форма сохранится правильно.
Эти три строки:
// 'cache_form' => массив (
// 'двигатель' => 'db', //),
Если они прокомментированы, вы их раскомментируете, они сохранят форму. Если они раскомментированы, вы закомментируете их и сохраните форму.
Очевидно, это отстой.
Мой друг, который настроил наш сервер (а затем покинул страну), сказал мне, что есть некоторые настройки Nginx, которые позволяют ему «игнорировать» определенные URL-адреса или страницы, которые могут здесь работать.
Как мне это сделать и где мне это сделать?
Было бы полезно, если бы вы могли опубликовать очищенную версию вашей конфигурации nginx, чтобы увидеть, что вы делаете?
Я не уверен, как вы это настроили, но типичная настройка Drupal с Nginx, сидящим перед Apache, - это обратный / статический прокси. Это означает, что Nginx обслуживает весь статический контент, такой как файлы JS, изображения и т. Д., И передает все запросы PHP на Apache, работающий на другом порту.