- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Сейчас так, но вроде как ИФ рекомендуют не использовать, как можно оптимизировать?
Важно чтобы был редирект на https без www
listen 80;
listen 443 ssl http2;
server_name site.ru www.site.ru;
if ($scheme = http) {
return 301 https://$server_name$request_uri;
}
if ($host ~* www\.(.*)) {
set $host_without_www $1;
rewrite ^(.*)$ https://$host_without_www$1 permanent;
}
так не рекомендуют использовать в том случае, если после разворачивания условий получается две большие простыни конфига.
но вообще делают разные секции server- для ввв, для http и т.п., в которых сразу редирект на правильный адрес. тогда будет без всяких ифов и максимально оптимально. но не так красиво...
У мну так:
server {
listen 80;
server_name blabla.com www.blabla.com;
location / {
rewrite ^(.*)$ https://blabla.com$1 permanent;
}
}
server {
listen 443 ssl http2;
server_name blabla.com;
...
...
Хотя, наверно, можно и без "location /" в первом server.
Спасибо, а почему IF стараются не использовать? Он что медленнее обрабатывается?
Я к тому, если работает можно не трогать или все равно лучше заменить?
в вашем примере IF использовать можно.
не рекомендуется его использовать в сложных конфигурациях, когда, к примеру, вы сначала устанавливаете какую-то переменную, а потом в различных местах IF-ом делается тот или иной набор дайствий тоже ифом...
связанно это с тем, что nginx динамически не парсит каждое условие во время работы, а разворачивает все условия своеобразным препроцессором в несколько отдельных конфигураций.
из-за этого получаются жуткие простыни в конфиге которые часто работают совсем не так, как мы того ожидаем.
блин. мне это трудно это разъяснить. погуглите, где-то были примеры. а так же можно врубить дебаг и своими глазами увидать во что превращаются ваши ИФ-ы и реврайты...
server {
listen xxx.xxx.xxx.xxx:80;
listen [xxxx:xxxx:xxxx:xxxx:xxxx:xxxx]:80;
server_name www.site.ru;
server_name site.ru;
return 301 https://site.ru$request_uri;
}
server {
listen xxx.xxx.xxx.xxx:443 ssl http2;
listen [xxxx:xxxx:xxxx:xxxx:xxxx:xxxx]:443 ssl http2;
server_name site.ru;
et cetera.........
}
а все ифы - в морг
https://www.nginx.com/resources/wiki/start/topics/depth/ifisevil/