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

Разгрузка SSL на Apache2 для сайта Wordpress

У меня есть сайт WordPress, работающий на экземпляре Google Compute Engine, и SSL используется для настройки внутри Apache.

Поскольку SSL и изменение размера изображения создавали большую нагрузку на этот экземпляр, я установил балансировщик нагрузки Google Compute Engine, установил SSL в балансировщике нагрузки и включил CDN.

На стороне Apache я отключил *:443 config и оставил только *:80 config. Load Balancer теперь принимает запрос на порт 443 и указывает на экземпляр на порту 80.

<VirtualHost *:80>
        ServerAdmin info@mysite.com
        ServerName  mysite.com
        ServerAlias www.mysite.com

        # Indexes + Directory Root.
        DirectoryIndex index.php index.html
        DocumentRoot /var/www/mysite/htdocs/

        # Logfiles
        ErrorLog  /var/www/mysite/logs/error.log
        CustomLog /var/www/mysite/logs/access.log combined
</VirtualHost>

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

Теперь я попытался включить перезапись URL-адресов, чтобы увидеть, смогу ли я вернуть весь контент через https:

<VirtualHost *:80>
        ServerAdmin info@mysite.com
        ServerName  mysite.com
        ServerAlias www.mysite.com

        # Indexes + Directory Root.
        DirectoryIndex index.php index.html
        DocumentRoot /var/www/mysite/htdocs/

        # Logfiles
        ErrorLog  /var/www/mysite/logs/error.log
        CustomLog /var/www/mysite/logs/access.log combined

        RewriteEngine on
        RewriteCond %{HTTPS} off
        RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [L,QSA,R=permanent]
</VirtualHost>

Как только я включаю RewriteEngine и переписываю URL-адреса, как указано выше, я получаю бесконечное количество перенаправлений.

Я немного устарел на стороне Apache, поскольку я использую NGINX почти исключительно в течение последних 5 лет. Есть ли идеи о том, как заставить WordPress правильно работать в этой настройке?

Оказывается, в моей настройке нет ничего плохого, добавив в WordPress следующую строку: wp-config.php исправляет это

// force SSL
$_SERVER['HTTPS']='on';

Или, если вы хотите запустить и http, и https:

if ($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https'){
       $_SERVER['HTTPS']='on';
}

Очевидно, удаление перенаправления https:

#        RewriteEngine on
#        RewriteCond %{HTTPS} off
#        RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [L,QSA,R=permanent]