Создать конфигу для nginx:
vi /etc/nginx/cloudflare
(cloudflare — это просто файл без расширения, в котором будут храниться правила для nginx)
Добавить строки: Читать далее «Показывать реальные ip посетителей сайта с cloudflare»

Прежде всего этот сайт — моя записная книжка, в которой собрана информация, часто используемая при создании сайтов. Здесь я оставляю заметки с кодом для себя.Может быть что-то, будет полезно и другим разработчикам.
Создать конфигу для nginx:
vi /etc/nginx/cloudflare
(cloudflare — это просто файл без расширения, в котором будут храниться правила для nginx)
Добавить строки: Читать далее «Показывать реальные ip посетителей сайта с cloudflare»
If you need to disable download .htpasswd file on nginx web server this solution will help.
location ~* \.(htpasswd)$ {
deny all;
}
If you need to disable download all hidden files:
location ~ /\. {
deny all;
}
«thesis-research-bot» делает множество обращений в БД и может положить сайт.
для того, чтобы заблокировать доступ этому боту в nginx нужно добавить файл с содержимым
### case insensitive
if ($http_user_agent ~* (thesis-research-bot|"thesis-research-bot")) {
return 403;
}
в файл .conf в /etc/nginx/vhosts-includes/
Файл может иметь произвольное имя и правила из него подхватываются nginx
После этого необходимо проверить корректность конфигурационных файлов и перезапустить nginx командами
nginx -t sudo systemctl restart nginx
community.cloudflare.com/t/getting-tons-of-bad-bots-attack-recently/578502
Для того, чтобы сделать редирект всех страниц одного сайта на такие же адреса на другом сайте, необходимо добавить в конфигурационный файл nginx следующие правила:
location / {
return 301 https://newsite.com$request_uri;
}
Если же необходимо оставить какие-то из урлов работающими на старом домене, то правило будет выглядеть так:
location ~ ^/(?!(wp-json|wp-admin)) {
return 301 https://newsite.com$request_uri;
}
Некоторые почтовые сервисы проверяют данный параметр почты. Также при некорректной настройке данного параметра сервер может попасть под фильтр, например, spamhaus.
По умолчанию EXIM4 подставляет в данный параметр $primary_hostname. Что не совсем правильно, если на сервере много доменов.
Для правильной настройки helo_data необходимо в секцию transports в remote_smtp добавить строку:
helo_data = mail.$sender_address_domain
Файл конфига EXIM располагается в etc/exim4/exim4.conf.template. Также если при установке exim была выбрана опция разбить файл на множество мелких — конфиг может быть в файлах и папках в директории.
После изменения файла нужно выполнить команду service exim4 restart
Проверить, что сервис работает service exim4 status
Вне server{} прописываем список страниц, для которых нужно добавить данный код ответа
map $uri $gone {
default 0;
~^/sample-page 1;
# consider an included file for these
}
А внутри server{}
if ($gone) {
return 410;
}
Чтобы изменить файл конфигурации сервера:
— Нужно зайти на сервер под суперпользователем
— Затем выполнить sudo su и стать root пользователем
— Выполнить команду vi /etc/nginx/site/site.conf
— Внизу будет зеленым сообщение, что данный файл уже используется нажать edit anymore
— Нажать Shift + ‘i’ для активации режима вставки
— Команда Shift + ‘;’ активирует снизу строку для ввода команды
— Сделать необходимые изменения и сохранить :wq (:q! — выйти без сохранения)
— Затем нужно проверить корректность конфигурации nginx -t
— Перезапускаем nginx коммандой service nginx reload
Очень часто домен покупается в одном месте, а хостинг в другом месте. Чтобы домен начал грузиться с хостинга, необходимо указать его днс у регистратора домена. Письмо с днс хостинга обычно приходит сразу после его покупки.
Если днс хостинга не применяются у регистратора домена, то можно попробовать настроить работу с помощью А записи.
Необходимо создать две А записи
Для начала необходимо сделать .htpasswd файл. Сгенерировать его можно с помощью сервиса hostingcanada.org/htpasswd-generator/
Затем файл необходимо разместить в директории сайта, путь будет указан в коде ниже
location ^~ /wp-admin/ {
auth_basic "Unauthorized";
auth_basic_user_file /var/www/www-root/data/www/site.name/.htpasswd;
try_files $uri $uri/ /index.php?$args;
location ~ [^/]\.ph(p\d*|tml)$ {
try_files /does_not_exists @php;
}
}
location ^~ /wp-admin/admin-ajax.php {
# This is cool because no php is touched for static content.
# include the "?$args" part so non-default permalinks doesn't break when using query string
try_files $uri $uri/ /index.php?$args;
location ~ [^/]\.ph(p\d*|tml)$ {
try_files /does_not_exists @php;
}
}
location ^~ /wp-admin/js/password-strength-meter.min.js {
# This is cool because no php is touched for static content.
# include the "?$args" part so non-default permalinks doesn't break when using query string
try_files $uri $uri/ /index.php?$args;
location ~ [^/]\.ph(p\d*|tml)$ {
try_files /does_not_exists @php;
}
}