Page 1 of 1
Редирект на HTTPS (PHP-FPM + Nginx)
Posted: Fri Mar 30, 2018 4:54 pm
by Metallurg.IT
Как настроить редирект на
HTTPS для сервера с
PHP-FPM + Nginx.
1) Добавил домен
2) Получил на него SSL через панель для папки public_html
3) Пробовал кидать в нее html страницы и CMS, автоматически не открывается старница с
https://
На CMS ModX - сайт получает httpS://,
только при переходе по ссылкам сайта.
.htaccess - пробовал менять - не помогло.
БагТрекер -
https://bugs.vestacp.com/issues/640
Re: Редирект на HTTPS (PHP-FPM + Nginx)
Posted: Fri Mar 30, 2018 6:59 pm
by yariksat
Metallurg.IT wrote: ↑Fri Mar 30, 2018 4:54 pm
Как настроить редирект на
HTTPS для сервера с
PHP-FPM + Nginx.
1) Добавил домен
2) Получил на него SSL через панель для папки public_html
3) Пробовал кидать в нее html страницы и CMS, автоматически не открывается старница с
https://
На CMS ModX - сайт получает httpS://,
только при переходе по ссылкам сайта.
.htaccess - пробовал менять - не помогло.
БагТрекер -
https://bugs.vestacp.com/issues/640
А причём здесь .htaccess?
.htaccess работает только с апачем.Можете уже выкинуть его.
Тут все правила пишутся в конфиг nginx.
У меня с коробочки на дефолтных конфигах практически всё работало.А остальное уже ручками.Писать лучше в инклюде а не прямо в конфиге никса иначе при ребилде веб конфиг затрет на дефолтный.Ну или в темлейтах сделать себе свой отдельный шаблон.Я себе шаблон делал,не люблю в инклюдах писать.
Re: Редирект на HTTPS (PHP-FPM + Nginx)
Posted: Fri Mar 30, 2018 7:35 pm
by Metallurg.IT
yariksat wrote: ↑Fri Mar 30, 2018 6:59 pm
Metallurg.IT wrote: ↑Fri Mar 30, 2018 4:54 pm
Как настроить редирект на
HTTPS для сервера с
PHP-FPM + Nginx.
1) Добавил домен
2) Получил на него SSL через панель для папки public_html
3) Пробовал кидать в нее html страницы и CMS, автоматически не открывается старница с
https://
На CMS ModX - сайт получает httpS://,
только при переходе по ссылкам сайта.
.htaccess - пробовал менять - не помогло.
БагТрекер -
https://bugs.vestacp.com/issues/640
А причём здесь .htaccess?
.htaccess работает только с апачем.Можете уже выкинуть его.
Тут все правила пишутся в конфиг nginx.
У меня с коробочки на дефолтных конфигах практически всё работало.А остальное уже ручками.Писать лучше в инклюде а не прямо в конфиге никса иначе при ребилде веб конфиг затрет на дефолтный.Ну или в темлейтах сделать себе свой отдельный шаблон.Я себе шаблон делал,не люблю в инклюдах писать.
Обычно и у меня все работало из коробки, но как собрал новый сервер все перестало(
Шаблон собственный хочу сделать, да пока ищу как и не знаю, будет ли в нем смысл вообще.
Re: Редирект на HTTPS (PHP-FPM + Nginx)
Posted: Fri Mar 30, 2018 8:42 pm
by yariksat
Metallurg.IT wrote: ↑Fri Mar 30, 2018 7:35 pm
Обычно и у меня все работало из коробки, но как собрал новый сервер все перестало(
Шаблон собственный хочу сделать, да пока ищу как и не знаю, будет ли в нем смысл вообще.
Ну так я так понимаю что с PHP-FPM + Nginx Вы впервые столкнулись?
Ибо не знаете что .htaccess тут не работает совершенно,ибо он работает только с апачем.
Свой шаблон нужно делать в темплейтах.
Re: Редирект на HTTPS (PHP-FPM + Nginx)
Posted: Sat Mar 31, 2018 7:41 am
by artscripts
редирект на https без www можно прописать так, в шаблоне nginx домена
Code: Select all
if ($host ~* www\.(.*)) {
set $host_without_www $1;
rewrite ^(.*)$ https://$host_without_www$1 permanent;
}
Re: Редирект на HTTPS (PHP-FPM + Nginx)
Posted: Sat Mar 31, 2018 10:06 am
by Metallurg.IT
yariksat wrote: ↑Fri Mar 30, 2018 8:42 pm
Metallurg.IT wrote: ↑Fri Mar 30, 2018 7:35 pm
Обычно и у меня все работало из коробки, но как собрал новый сервер все перестало(
Шаблон собственный хочу сделать, да пока ищу как и не знаю, будет ли в нем смысл вообще.
Ну так я так понимаю что с PHP-FPM + Nginx Вы впервые столкнулись?
Ибо не знаете что .htaccess тут не работает совершенно,ибо он работает только с апачем.
Свой шаблон нужно делать в темплейтах.
Использую давно, а вот шаблоны подвели в первые и пришлось знакомиться.
Re: Редирект на HTTPS (PHP-FPM + Nginx)
Posted: Sat Mar 31, 2018 10:43 am
by yariksat
Metallurg.IT wrote: ↑Sat Mar 31, 2018 10:06 am
Использую давно, а вот шаблоны подвели в первые и пришлось знакомиться.
Может быть меня ввело в заблуждение то что Вы не знаете что .htaccess на этой связке не работает....
Re: Редирект на HTTPS (PHP-FPM + Nginx)
Posted: Sat Mar 31, 2018 11:04 am
by Metallurg.IT
Итак.
Ночные изыскания привели к решению устраивающему меня на данный момент. Оно может являться костылем и не могу советовать его, а так же буду рад если внесете критику и правки.
Мой пример рассматривается на примере шаблона MODx - но куски кода аналогичны и для других шаблонов.
На данный момент у меня работает редирект на
HTTPS://domain.ru при вводе
domain.ru и
www.domain.ru.
Я не понял до конца, есть ли работа с SSL портом, так что наверное у меня банально по домену редирект происходит.
Code: Select all
cd /usr/local/vesta/data/templates/web/nginx/php-fpm/
Копируем файл
cp modx.tpl modx-https.tpl
Редактируем файл
nano modx-https.tpl
Code: Select all
server {
listen %ip%:%web_port%;
server_name %domain_idn% %alias_idn%;
root %docroot%;
index index.php index.html index.htm;
access_log /var/log/nginx/domains/%domain%.log combined;
access_log /var/log/nginx/domains/%domain%.bytes bytes;
error_log /var/log/nginx/domains/%domain%.error.log error;
#################################################################################################
## Если нет в адресной строке https:// то делает редирект на https://
if ($scheme != "https") {
return 301 https://%domain%$request_uri;
}
## Если в адресной строке есть www.domain.ru то делается редирект на https://domain.ru
if ($host != "%domain%") {
return 301 https://%domain%$request_uri;
}
## Исправляем ошибку MODX: Каталог ядра в открытом доступе
location /core/ {
deny all;
}
#################################################################################################
location = /favicon.ico {
log_not_found off;
access_log off;
}
#################### С ЭТОГО КУСКА " location = /favicon.ico {" ВСЕ НИЖЕ СТАНДАРТНО #################
Копируем файл
cp modx.tpl modx-https.stpl
Редактируем файл
nano modx-https.stpl
Code: Select all
server {
listen %ip%:%web_ssl_port%;
server_name %domain_idn% %alias_idn%;
root %sdocroot%;
index index.php index.html index.htm;
access_log /var/log/nginx/domains/%domain%.log combined;
access_log /var/log/nginx/domains/%domain%.bytes bytes;
error_log /var/log/nginx/domains/%domain%.error.log error;
ssl on;
ssl_certificate %ssl_pem%;
ssl_certificate_key %ssl_key%;
#################################################################################################
## Исправляем ошибку MODX: Каталог ядра в открытом доступе
location /core/ {
deny all;
}
#################################################################################################
location = /favicon.ico {
log_not_found off;
access_log off;
}
#################### С ЭТОГО КУСКА " location = /favicon.ico {" ВСЕ НИЖЕ СТАНДАРТНО #################
Не забываем выбрать новый шаблон в редактировании домена и "Пересоздать WEB".!
P.S. В редакторе nano
Сохранить Ctrl+O потом Ctrl+X
Удалить всю строчку Ctrl+K
Жду критику и исправления.