Назад | Перейти на главную страницу

nginx и лак для кеширования принудительного ssl

Я сейчас делаю домашнюю работу по переходу с apache без кеширования на nginx с кешированием, возможно, через лак ...

После прочтения различных блогов, статей, вопросов о сбоях сервера и т. Д. Я понимаю, что varnish не может работать с ssl, и что varnish может быть лучше, чем nginx для реального кеширования динамического контента. Но я немного застрял в понимании того, как работает кеширование nginx И как nginx + varnish могут работать вместе, когда требуется ssl.

Как будет реализовано следующее: с nginx + varnish ИЛИ только с nginx с кешированием?

  1. некоторые URL-адреса, управляемые настраиваемым движком php: т.е. example.com/this-page обслуживается example.com/index.php?p=this-page

  2. некоторые URL-адреса управляются wordpress: т.е. example.com/blog/this-article обрабатывается wordpress через example.com/blog/index.php?p=this-article

  3. должен принудительно использовать ssl везде: т.е. http://example.com/* перенаправляет на https://example.com/*

  4. www должен перенаправлять на верхний домен: т.е. http://www.example.com/* перенаправляет на https://example.com/*

Все это обслуживает кешированную версию, если она существует (если я понимаю, кеширование зависит от времени, поэтому, если я сделаю обновление на этой странице, мне нужно будет вызвать PURGE, если маршрут лакировки, и вручную удалить файлы, если маршрут nginx)

Если вы хотите использовать nginx и Varnish, я бы предложил что-то вроде этого.

  • nginx в качестве внешнего интерфейса и терминатора SSL, настроенного с Varnish в качестве внутреннего интерфейса. Это также нормализует (переписывает) имена хостов, например, из www.example.org на example.org.
  • Varnish для кеширования контента со своей серверной части, nginx
  • nginx с запущенными виртуальными хостами, например порт 8080 со всей "логикой приложения", такой как перезапись WordPress, кастомная перезапись PHP-движка и тому подобное.

Итак, в основном у вас будет такой стек:

nginx -> Varnish -> nginx -> php-fpm

Четыре пункта, упомянутых вами, будут решены следующим образом.

  1. Backend-nginx с перезаписью и proxy_pass на php-fpm.
  2. Backend-nginx с Переписывания, связанные с WordPress.
  3. Frontend-nginx с простыми виртуальными хостами для перенаправлений.
  4. То же, что и 3.