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

Перенаправление обратного прокси-сервера Nginx для Shopify?

Мы пытаемся сделать наш сайт более ориентированным на контент, и хотя Shopify - отличная платформа для электронной коммерции, это не так уж и хорошо, когда дело доходит до контента. Поэтому мы переместили наш сайт исключительно с Shopify и разместили WordPress на сервере Nginx. На этом сервере мы сделали обратный прокси-сервер в / store на следующем сайте. эта почта.

После того, как я его настроил, все было хорошо, но поскольку в течение дня трафик увеличился, мы столкнулись с этим сообщением о запрете:

Сообщение о запрете IP-адреса

Я предполагаю, что Shopify не смотрит на перенаправленный IP-адрес клиента, и в результате сервер блокируется из-за всего трафика. В конечном счете, это может быть не тот обходной путь, который мы искали, и нам, возможно, придется вообще покинуть Shopify. В основном из-за этого наш магазин не работал весь день.

Может ли кто-нибудь подтвердить, что этот метод не работает? Или это просто ошибка конфигурации с моей стороны.

Вот мое местоположение из файла конфигурации nginx:

location ~^/store/(collections|cart|products|shopify|pages|blogs|checkout|admin)/?/
{
    rewrite /store/(.*) /$1 break;
    proxy_pass https://xxxx.myshopify.com;
    proxy_set_header   Host             $host;
    proxy_set_header   X-Real-IP        $remote_addr;
    proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
    proxy_redirect off;
    client_max_body_size 10m;
    client_body_buffer_size 128k;
    proxy_connect_timeout 90;
}

Буду очень признателен за любую помощь. Дайте мне знать, если я могу еще что-нибудь предложить, чтобы вам было легче ответить.

Спасибо!

Я снова получил ответ от Shopify. Они подтвердили, что это проблема с их стороны:

Аарон из Shopify, я только что ответил вам в Твиттере! Я только что получил ответ от наших расширенных групп поддержки по этому поводу. Это происходит из-за недавнего добавления кода в Shopify - есть несколько более строгие правила относительно того, что может делать один IP. Поскольку весь трафик, поступающий из магазина, отображается как один и тот же IP-адрес, программное обеспечение блокировки блотов подхватывает его и блокирует трафик на две минуты, но, поскольку он продолжается, это приводит к постоянному простою.

Наши технические специалисты предложили установить его как shop.domain.com, а не domain.com/shop, чтобы отсортировать его для вас - если у вас по-прежнему будут проблемы, дайте мне знать, и мы перейдем к следующим шагам. это для тебя!

Естественно, это не решение, поскольку SEO является частью нашей основной стратегии.

К сожалению, ответ здесь, вероятно, «удалить обратный прокси».

Если вам действительно нужен контент и покупки вместе, вам понадобится Shopify расширенный, чтобы показать контент, отключить запрет IP или принять перенаправленные заголовки.

Если вы можете терпеть разные домены, вы можете разместить Wordpress в основном домене, а Shopify в субдомене или наоборот. Не лучшее решение, но самое простое.

Если повезет, кто-то другой предложит лучшее решение.

Это старый пост, но я подумал, что поделюсь следующим для всех, кто найдет этот вопрос.

Другой вариант - использовать CloudFront. Запросы будут поступать с разных IP-адресов и потенциально могут уменьшить эту проблему.

Допустим, у вас есть yourstore.com и blog.yourstore.com. Вы можете настроить распределение CloudFront следующим образом:

  • Источник: blog.yourstore.com
  • Поведение: / blog -> blog.yourstore.com
  • Поведение: / blog / * -> blog.yourstore.com
  • Поведение: По умолчанию (*) -> yourstore.myshopify.com

Примечание:

  • Выберите «Использовать заголовки исходного кэша» для поведения.
  • Перенаправить заголовки Host, Origin и Referer для поведения блога.
  • Разрешить методы HTTP "GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE" для поведения блога.

Затем blog.yourstore.com может быть размещен на сервере EC2 с nginx. Я рекомендую 301 перенаправлять запросы, не относящиеся к CloudFront (например, поисковый робот Google или люди, заходящие на blog.yourstore.com вручную) на yourstore.com/blog. Вы можете сделать это с помощью перезаписи nginx (в дополнение к другим вашим правилам nginx, специфичным для размещения Wordpress), например:

server {
  listen 80;
  server_name blog.yourstore.com;
  root /home/wordpress/www;

  listen 443 ssl;
  ssl_certificate /etc/ssl/yourstore.com.bundle.crt;
  ssl_certificate_key /etc/ssl/yourstore.com.key;

  return 301 https://yourstore.com/blog$request_uri;
}

Для перенаправления с www.yourstore.com на yourstore.com можно настроить второе распределение для www.yourstore.com, указать его на корзину S3 и настроить корзину S3 для перенаправления запросов на yourstore.com.

Обратите внимание, что эта настройка предполагает, что ваш магазин находится на yourstore.com, а не на yourstore.com/store. Если вы хотите использовать / store, вам нужно немного изменить настройки.