tiernano
  • 0
Новичок

Использование WordPress за пользовательским дистрибутивом CloudFront

  • 0

Мне только что удалось запустить свой сайт за дистрибутивом Cloudfront с помощью пользовательского API-интерфейса дистрибутива, но теперь я не могу войти на сайт, используя стандартный старый адрес (поскольку я облажался с DNS). Способ подключения у меня следующий:

backendblog — настоящий серверный блог — облачный фронт-дистрибутив должен получать данные из backendblog

посещение блога приводит к тому, что страница возвращается (и довольно быстро!), но ни один из динамических элементов (поиск, вход в систему и т. д.) не работает. комментарии работают отлично, так как они управляются Disqus.

Итак, у меня есть 2 вопроса по этому поводу:

1: как мне настроить его так, чтобы backendblog позволял мне входить в систему без перенаправления в блог (если я устанавливаю конфигурацию, она меняет все URL-адреса… хочу, чтобы URL-адреса были тем сайтом, на котором загружается страница…) 2: как настроить страницы так, чтобы они имели большее время истечения срока действия, чтобы они дольше оставались в CloudFront?

Кто-нибудь пробовал это?

сайт, для справки, это blog.lotas-smartman.net (clodfront) или backendblog.lotas-smartman.net (выделенный ящик в Германии). за последнюю неделю среднее время отклика Pingdom резко сократилось с помощью облачного фронта…

Share
  1. Вы пробовали опцию WP_SITEURL в wp-config.php?

    • 0
    • глядя на мой wp-config, там нет упоминания о WP_SITEURL. кажется, что, глядя на вещи в Интернете, этот WP_CONFIG противоположен тому, что я хочу сделать… я хотел бы, чтобы несколько доменов указывали на один экземпляр WP, и каждый из них использовал домен, из которого они пришли…

      • 0
  2. Я работал над этим точно таким же вопросом. Что вам нужно сделать, это иметь два домена. Один для вашего внутреннего блога, а другой указывает на облачный фронт. Ваш бэкендблог будет настроен так, чтобы он обслуживал сам себя (бэкендблог). В моем тестовом примере я использую свой блог в качестве внутреннего блога.

    Если бы это было для производственного использования, у вас, вероятно, были бы content.example.com как backendblog, www.example.com так и cloudfront. Затем вы настраиваете облачный фронт для извлечения из бэкендблога (вы уже разобрались с этой частью) в моем примере.

    Сложная часть состоит в том, чтобы написать плагин, который переписывает все ваши URL-адреса из бэкенд-блога в URL-адрес облачного фронта, когда он получает запрос от пользовательского агента облачного фронта.

    <?php
    /*
    Plugin Name: CDN Rewrite
    Plugin URI: http://blog.andrewshell.org/cdnrewrite
    Description: Rewrite urls on page if behind a CDN
    Author: Andrew Shell
    Version: 1.0.0
    Author URI: http://blog.andrewshell.org/
    */
    
    if (0 == strcmp($_SERVER['HTTP_USER_AGENT'], 'Amazon CloudFront')) {
      $now     = time();
      $expires = strtotime('+1 hour', $now);
      header("Expires: " . gmdate(DATE_RSS,$expires) . "\n");
    
      add_filter( 'home_url', 'cdnrewrite_url', 100, 4 );
      add_filter( 'site_url', 'cdnrewrite_url', 100, 4 );
    }
    
    function cdnrewrite_url( $url, $path, $orig_scheme, $blog_id )
    {
      return str_replace('blog.andrewshell.org', 'd11b8ym2xu437t.cloudfront.net', $url);
    }
    

    Если вы хотите редактировать сообщения и тому подобное, просто войдите в бэкэндблог, он не должен перенаправлять, потому что он настроен как бэкэндблог (а не URL-адрес облачного фронта), но все запросы из облачного фронта будут исправлены, поэтому ссылки останутся в домене CDN.

    Это не идеально, если вы посмотрите в источнике моего URL-адреса облачного фронта, вы увидите несколько ссылок на мой бэкэндблог, но это ход размышлений, который вы захотите пройти. Следующим шагом, вероятно, является изменение плагина для захвата всего вывода в выходной буфер и выполнения для него str_replace перед его возвратом.

    • 0
  3. Вы упомянули, что хотите, чтобы ваши URL-адреса были изменены на тот сайт, на который загружается страница.

    Возможно, вы могли бы подключиться pre_option_siteurl и pre_option_home динамически возвращать URL-адрес, с которого вы пришли.

    http://codex.wordpress.org/Plugin_API/Filter_Reference/pre_option_(option_name )

    • 0

Оставить ответ

You must login to add an answer.