Веб движется в сторону шифрование HTTPS с использованием по default.Этот шаг был воодушевлен Google, который объявил, что HTTPS будет рейтинг signal 1 .Однако, перемещение ваш сайт HTTPS хорош для другой | reasons__4 __11 | 2 | __8 тоже .
Вместо обсуждения этих причин, эта статья предполагает, что вы уже решили переехать в HTTPS.Мы будем идти через, как двигаться ваш сайт, чтобы HTTPS, воспользовавшись Лак кэш .
Что Проблема с лака и HTTPS? Link
В предыдущих статьях на Smashing Magazine, я объяснил, как использовать Лак для ускорения website __27 | 3 .Для тех из нас, кто использует лак, а также хотят, чтобы перейти к протоколу HTTPS, есть проблема: Лак не поддерживает HTTPS 4 .Если вы делаете шаг к SSL, настройке Apache, чтобы служить ваш сайт надежно, то вы потеряете скорость преимущество Лак .
Существует относительно простой способ иметь дело с этим вопросом, и это что-то, чтобы придерживаться между входящих запросов SSL и лак, слой, который обрабатывает безопасные сертификаты SSL соединения и затем передает запрос обратно лаком.Для решения этой задачи мы будем использовать Nginx.Вы, возможно, знаете Nginx в качестве веб-сервера Apache альтернативы, и это.Тем не менее, он также может быть использован в качестве прокси-сервера для обработки и передачи запросов на другие услуги, которые это то, что мы собираемся сделать здесь.Другими словами, мы собираемся создать бутерброд веб-сервера, с лаком, как вкусный кэш-мяса в среднем .
Где мы находимся и куда мы хотим, чтобы Link
Я предполагаю, что вы находитесь в подобной ситуации, как мне и есть сервер — ли виртуальная или специализированные аппаратные средства — с рядом сайтов, работающих на нем.Некоторые из этих сайтов, которые вы хотите, чтобы в полной мере HTTPS сделать, и, возможно, некоторые останутся HTTP в настоящее время .
Текущая конфигурация будет иметь каждый запрос на порт 80 обрабатывается лаком.Лак затем решает, на основе правилдобавил в свой лаком Configuration Language (VCL), то ли поставить сохраненную копию страницы, или передать запрос обратно в Apache для новой страницы должен быть создан.После того, как страница парад Apache, веб-сервер, возможно, потребуется, чтобы вытащить информацию из базы данных или выполнять другую обработку, прежде чем доставить его .
К концу этого урока, мы хотим быть в следующем положении:
- Nginx будет работать на порту 443 и обрабатывать входящие запросы HTTPS, вручая их, чтобы лак .
- Лак будет работать на порту 80 и обрабатывать входящие запросы HTTP, в том числе из Nginx, обеспечивая непосредственно из кэша или вручения Apache
- Apache будет работать на порту 8080 и делать то, что делает Apache: доставить ваш сайт или приложение .
В этой ситуации, Nginx становится прокси.Это не делает обработку вашего сайта, и он не работает PHP или подключения к вашей базе данных.Все это делает принять запросы HTTPS и передать их обратно в лак.Лак затем решает, следует ли передать обратно сохраненную копию или передать его обратно в Apache, чтобы получить свежий один, используя правила лака у вас уже есть .
Мой Пример окружающей среды Link
Я собираюсь работать в Vagrant, используя Ubuntu Trusty.Мой отправной точкой является, как описано выше, с Apache установлен на порт 8080, и лак 4 установлен на порт 80 .
Если вы хотели бы следовать, вы можете скачать мои среды от GitHub __24 | | 5__17 .Инструкции по настройке находятся в файле ридми .
У меня есть два веб-сайтов, настроенные.Если я посещаю эти сайты в браузере, лаки будет обрабатывать запрос на порт 80, либо предоставления файл из кэша или передать его обратно в Apache .
На данный момент, это полезно, чтобы проверить, какие порты все работает дальше.SSH в Vagrant в командной строке:
> vagrant ssh
Затем запустите NetStat:
> sudo netstat -taupen
Это даст вам выход портов, а также информацию, на которой процесс их использования.Вы должны найти, что лак работает на порту 80 и Apache на 8080 .
Вы также можете проверить, что лак работает нормально и служить страниц из кэша с помощью следующей команды:
> varnishstat
Если вы перезагрузите страницу в браузере, вы должны увидеть кэша попаданий и промахов .
Если вы используете свой VCL из GitHub, я добавил к конфигурации лаком код, который будет отправлять HIT
или MISS
заголовок в браузере.Это означает, что вы можете посмотреть на заголовки отправляются.Вы должны увидеть X-Cache: HIT
если страница пришла из лака и X-Cache: MISS
, если он был подан Apache .
Установка Nginx Link
Теперь мы можем установить Nginx.О системе Ubuntu, это так просто, как, выполнив следующую команду:
> sudo apt-get install nginx
Nginx в documentation 10 имеет информацию по установке Nginx на различных системах, а также пакеты для систем, которые не включают его в свой управления пакетами.Помните, что мы только с помощью Nginx в качестве прокси, так что вам не нужно беспокоиться о настройке PHP или MySQL поддержку.Nginx won’ т запускается по умолчанию, и в настоящее время она не в состоянии начать, потому что лак уже использует порт 80. Если вы делаете этот процесс на реальном сервере, вы бы безопасно запускать этот шаг без каких-либо влияния на ваших запущенных веб-сайтов.
Создать или установить __40 сертификата SSL | Link
Следующим шагом является создание наш сертификат SSL.Потому что мы работаем на местном уровне, мы можем создать “самоподписанный” сертификат для того, чтобы проверить соединения SSL .
Для создания собственного сертификата для тестирования, сначала выберите или создайте каталог для его I’. Ве создали nginx
каталог в /etc/ssl
.Затем запустите команду ниже, чтобы генерировать ключ и сертификат пару .
> sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/nginx/smashing_ssl_one.tutorials.eoms.key -out /etc/ssl/nginx/smashing_ssl_one.tutorials.eoms.crt
Когда вы запустите эту команду, будет предложено ряд вопросов.Вы можете в основном поместить мусор в них;Однако, при запросе “Common Name”, использовать домен, который вы вводите в адресной строке для доступа ваш сайт на Vagrant.Для меня, это smashing_ssl_one.tutorials.eoms
.
Если вы теперь посмотрите в созданную папку, вы должны увидеть два файла, один с .key
расширение и один с .crt
расширение .
На вашем рабочем сервере, вы бы купить сертификат от органа, выдавшего.Вы бы тогда быть предоставлены файлов ключа и сертификата, а вместо создания их, вы бы разместить их на сервере, прежде чем следовать следующий шаг .
Настройка SSL веб-сайтов в Nginx Link
С вашим самозаверяющих или приобретенных SSL сертификатов на месте, вы можете настроить веб-сайты в Nginx .
Во-первых, удалить файл конфигурации по умолчанию от /etc/nginx/sites-enabled
.Вы можете удалить default
файл или переместить его в другое место .
Нам нужно только настроить веб-сайты, будут обслуживаться по протоколу SSL;любые другие веб-сайты по-прежнему будет подан прямо из лака на порту 80. В моем случае, я собираюсь настроить smashing_ssl_one.tutorials.eoms
.Если вы видите, что домен в ниже шагов, вы можете заменить его с вашей собственной живой или локального домена, если вы не используете свой пример .
В /etc/nginx/sites-available/
, создать файл конфигурации your_domain.com.conf
.
В этом файле, добавьте следующее:
server {
listen *:443 ssl;
server_name smashing_ssl_one.tutorials.eoms;
ssl on;
ssl_certificate /etc/ssl/nginx/smashing_ssl_one.tutorials.eoms.crt;
ssl_certificate_key /etc/ssl/nginx/smashing_ssl_one.tutorials.eoms.key;
location / {
proxy_pass http://127.0.0.1:80;
proxy_read_timeout 90;
proxy_connect_timeout 90;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-Port 443;
proxy_set_header Host $host;
}
}
Первая строка сообщает серверу мы на порту 443. Это порт по умолчанию для HTTPS соединений, как порт 80 для HTTP.Мы затем дать имя сервера .
Мы устанавливаем SSL, чтобы быть на, а затем добавить сертификат и ключ, который мы создали, или установлена, используя полный путь файловой системы .
Под месте, мы используем proxy_pass
пройти запрос обратно в порт, где 80 Лак ждет его.Мы тогда установить некоторые заголовки, которые будут переданы через .
После добавления этот файл, символическими ссылками файл в sites-available
к sites-enabled
.Если вы когда-нибудь хотели, чтобы выключить веб-сайт, вы можете просто удалить символическую ссылку.Следующая команда создаст символическую ссылку в командной строке:
> ln -s /etc/nginx/sites-available/smashing_ssl_one.tutorials.eoms.conf /etc/nginx/sites-enabled/smashing_ssl_one.tutorials.eoms.conf
Затем перезагрузите Nginx:
> sudo service nginx restart
Если вы видите выход restarting nginx nginx
, а затем [fail]
, вероятно, проблема некоторые опечатка в вашей конфигурации.Мой обычный проблема либо разделения ключей и значений с двоеточия или забывая точку с запятой в конце строки .
Если Nginx не запускается, посмотрите на журнал в /var/log/nginx/error.log
, потому что большинство проблем пояснений .
Вы увидите [OK]
, если Nginx начинает успешно.Теперь, еслиВы проверьте, чтобы увидеть, что работает, на каком порту, вы увидите, что Nginx теперь на порту 443, лак все еще имеет порт 80 и Apache 8080 .
> sudo netstat -taupen
Большой тест по настоящее время, посетите сайт, используя https://
.Если вы используете самоподписанный сертификат, то вам придется пройти по __60 предупреждающие сообщения | ваш браузер предупреждает вас, что сертификат выдается неизвестной власти .
Если вы видите вашу страницу служил надежно с замком в адресной строке, то вы в настоящее время отбывает HTTPS с по …
Если вы хотите прочитать полностью статью, посетите сайт наших спонсоров