Архив метки: nginx

🌐 Как защитить паролем каталог с аутентификацией .htpasswd на Nginx

Как ограничить доступ к каталогу  /app/ на Nginx?

 Как настроить парольную защиту каталога с аутентификацией Nginx .htpasswd в Linux или Unix-подобных системах?

Нам нужно защитить различные каталоги или конечные точки на Nginx.

Например, я часто защищаю паролем и ограничиваю доступ с помощью IP-адреса, пока мой проект не будет готов к запуску.

В этом руководстве объясняется, как защитить паролем каталоги или URL-адреса, такие как /app/, на веб-сервере Nginx, работающем в Linux или Unix-подобных системах.

Читать

Как исправить ошибку 502 Bad Gateway в Nginx?

Nginx был запущен в 2004 году как веб-сервер с открытым исходным кодом. С момента выпуска он очень часто используется для хостинга веб-сайтов. Помимо этого, он также используется как балансировщик нагрузки, прокси-сервер электронной почты, обратный прокси-сервер и HTTP-кеш. Как и любой другой веб-сервер, Nginx также подвержен определенным ошибкам, из которых наиболее распространенной является ошибка 502 Bad Gateway. Это очень общий тип ошибки, которая возникает, когда вы пытаетесь получить доступ к веб-серверу, но не можете его достичь. В этом случае ваш браузер может отобразить ошибку 502 Bad Gateway. Поскольку вместе с этой ошибкой не появляется никакой другой информации, пользователь не имеет представления о том, что именно пошло не так и как их исправить.

Поэтому в сегодняшней статье мы попытаемся найти все потенциальные причины ошибки 502 Bad Gateway в Nginx, а также способы ее исправления.

 

Причины ошибки 502 Bad Gateway в Nginx

Ошибка 502 Bad Gateway в Nginx может быть вызвана несколькими причинами, наиболее распространенные из которых перечислены ниже:

 

Недостижимый домен.

Когда вы вводите имя домена в строке поиска браузера и нажимаете клавишу Enter для доступа к этому веб-сайту, самой первой задачей, которая выполняется, является обращение к вашей системе доменных имен (DNS). DNS-сервер сопоставляет указанное доменное имя со своим зарезервированным IP-адресом, а затем связывается с соответствующим сервером, который, в свою очередь, отвечает вам, отображая запрошенную веб-страницу в вашем веб-браузере. Однако иногда DNS-серверу не удается достичь указанного домена из-за ошибки 502 Bad Gateway в Nginx. Это может произойти из-за определенных изменений, происходящих в вашем DNS, которые вступят в силу через достаточно времени после того, как он начнет работать правильно.

 

Чрезмерно активированные брандмауэры

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

 

Хостинг-сервер выходит из строя

Поскольку серверы имеют ограниченную емкость, в которой они не могут обслуживать запросы пользователей, поэтому, как только эта емкость будет достигнута, все будущие входящие пользователи могут столкнуться с ошибкой 502 Bad Gateway, поскольку ваш сервер будет отключен. Другой причиной этого может быть то, что вы намеренно остановили свой сервер для обслуживания.

 

Исправление ошибки 502 Bad Gateway в Nginx

В зависимости от причин ошибки 502 Bad Gateway в Nginx вы можете попытаться устранить ее, используя любое из следующих решений:

 

Обновите свою веб-страницу

Иногда вы можете увидеть ошибку 502 Bad Gateway только из-за некоторых временных проблем с подключением, которые можно решить, просто обновив веб-страницу и проверив, есть ли у вас доступ к веб-странице. Если вам по-прежнему не удается перейти на желаемую веб-страницу, вы также можете попытаться очистить кеш браузера, потому что иногда в кеше браузера сохраняется ответ с ошибкой 502 Bad Gateway. Из-за этого ваш браузер снова и снова отображает эту ошибку, поэтому очистка кеша может решить эту проблему.

 

Выполните тест Ping.

Если вы по-прежнему не можете получить доступ к своему веб-серверу даже после обновления веб-страницы и очистки кеша браузера, возможно, на вашем веб-сервере возникли серьезные проблемы с подключением. В этом случае вы можете попробовать выполнить тест Ping, при котором вы отправляете запрос Ping на свой сервер и проверяете, доступен ли он или нет. Если ваш сервер доступен, то вы сможете получить к нему доступ, если нет, то вам придется искать другие решения, перечисленные ниже.

 

Ищите возможные изменения в вашем DNS

Возможно, вы поменяли поставщика услуг хостинга или изменили IP-адрес, с которым можно связаться с вашим веб-сервером. Эти изменения всегда отражаются на DNS-сервере, но для их правильного выполнения требуется некоторое время. В этом случае вам нужно подождать, пока изменения вступят в силу во всем вашем DNS, после чего вы больше не будете видеть ошибку 502 Bad Gateway в Nginx.

 

Мониторинг журналов сервера. Журналы

сервера содержат подробную информацию о состоянии вашего сервера и всех действиях, которые он выполняет. Если вы регулярно отслеживаете журналы сервера, они могут очень помочь вам в выяснении, что именно пошло не так, следовательно, позволяет исправить ошибку 502 Bad Gateway в Nginx, поскольку знание точной причины ошибки на самом деле является первый шаг к устранению этой ошибки.

 

Перепроверьте настройки брандмауэра

Вам необходимо применить это исправление, если вы выяснили, что настройки брандмауэра слишком строгие и даже блокируют доступ законных пользователей к вашему сайту. В этом случае сброс настроек брандмауэра может легко исправить ошибку 502 Bad Gateway в Nginx.

 

Отладка кода вашего веб-сайта

Иногда проблема связана не с проблемами подключения, а скорее с ошибкой кода вашего веб-сайта, которая вызывает ошибку 502 Bad Gateway в Nginx. Выявление таких ошибок вручную практически невозможно, поэтому настоятельно рекомендуется отлаживать код своего веб-сайта в изолированной среде. Это не только определит точную проблему, которую вы можете немедленно исправить, но и предотвратите повреждение вашей физической системы из-за запуска на ней ошибочного кода, поскольку вы запускаете ее в изолированной среде.

 

Попробуйте связаться с вашим поставщиком услуг хостинга

Иногда, когда вы не можете разместить свой собственный веб-сервер, вы берете услуги хостинга в аренду у поставщика услуг хостинга. В этом случае проблема, которая вызывает ошибку 502 Bad Gateway в Nginx, возможно, связана не с вашей стороной, а скорее с какой-то проблемой с услугой хостинга, которую вы получаете. Единственное решение этой проблемы — связаться с вашим поставщиком услуг хостинга, который не только возьмет на себя ответственность за выяснение этой проблемы, но также может предложить способы, с помощью которых вы можете предотвратить повторение этой ошибки в будущем.

 

Заключение

В этой статье мы кратко познакомили вас с Nginx и наиболее распространенным типом ошибок, с которыми сталкивается этот веб-сервер, в частности, с ошибкой 502 Bad Gateway. Затем мы также указали все возможные причины этой ошибки. Наконец, мы поделились с вами всеми различными решениями о том, как можно исправить эту ошибку в Nginx.



2020-12-27T09:53:44
NGINX

Команды Nginx, которые вы должны знать

Nginx произносится как «движок x» — это бесплатный высокопроизводительный HTTP-сервер и обратный прокси-сервер с открытым исходным кодом, отвечающий за обработку нагрузки некоторых из крупнейших сайтов в Интернете. Его можно использовать как автономный веб-сервер и как обратный прокси-сервер для Apache и других веб-серверов.

Если вы разработчик или системный администратор, скорее всего, вы имеете дело с Nginx на регулярной основе.

В этом руководстве мы рассмотрим наиболее важные и часто используемые команды Nginx, включая запуск, остановку и перезапуск Nginx. Читать

Настройка обратного прокси Nginx

Обратный прокси-сервер — это служба, которая принимает запрос клиента, отправляет запрос одному или нескольким прокси-серверам, получает ответ и доставляет ответ сервера клиенту.

Благодаря своей производительности и масштабируемости NGINX часто используется в качестве обратного прокси-сервера для HTTP-серверов и серверов, отличных от HTTP. Типичная конфигурация обратного прокси-сервера — поставить Nginx перед приложениями Node.js , Python или Java . Читать

Настраиваем HTTP заголовки WEB-сервера Nginx

Сегодня в статье поговорим как Настроить HTTP заголовки WEB-сервера Nginx и обезопасить ваш сервер от различных атак.




HTTP заголовки WEB-сервера Nginx




Для начала давайте откроем конфигурационный файл WEB сервера Nginx




sudo nano /etc/nginx/nginx.conf




Найдите раздел HTTP, в этом разделе определяются конфигурации для HttpCoreModule Nginx. Добавьте следующую директиву: 




server_tokens off;




Это запретит Nginx отправлять номера версий в заголовке HTTP.




Перезагрузите конфигурацию Nginx Чтобы применить это изменение:




sudo service nginx reload




X-XSS-Protection




Заголовок X-XSS-Protection может предотвратить некоторые XSS-атаки («межсайтовый скриптинг»), он совместим с IE 8+, Chrome, Opera, Safari и Android.




Добавьте следующее в nginx.conf в разделе HTTP:




add_header X-XSS-Protection "1; mode=block";




X-Frame-Options




Заголовок X-Frame-Options позволяет снизить уязвимость вашего сайта для кликджекинг-атак. Этот заголовок служит инструкцией для браузера не загружать вашу страницу в frame/iframe. Не все браузеры поддерживают этот вариант, так что проверьте заголовок на совместимость перед тем, как его добавлять.




Добавьте следующее в nginx в директиве Server обычно она находится в конфигурационном файле сайта:




add_header X-Frame-Options “DENY”;




X-Content-Type-Options




Можно предотвратить атаки с использованием подмены MIME типов, добавив этот заголовок ответа HTTP. Заголовок содержит инструкции по определению типа файла и не допускает сниффинг контента. При конфигурации потребуется добавить только один параметр: “nosniff”.




Добавьте следующую строку в файл nginx в директиве Server:




add_header X-Content-Type-Options nosniff;




Content Security Policy




Чтобы предотвратить XSS-атаки, кликджекинг, внедрение кода, можно добавить заголовок ответа Content Security Policy (CSP). CSP содержит инструкции о загрузке контента из разрешенных источников.




Добавьте следующее в секцию Server в файле nginx.conf:




add_header Content-Security-Policy "default-src 'self';";




Если после внесения данной директивы сайт стал отображаться не правильно, то вам необходимо :




РНР




По соображениям безопасности сервера рекомендуется отключить или скрыть информацию от злоумышленников, которые могут быть нацелены на ваш сервер, желая узнать, используете ли вы PHP или нет.




sudo nano /etc/php/7.4/fpm/php.ini




Найдите ключевое слово expose_php и установите его значение в Off:




 expose_php = off




Если вы используете PHP как FPM, то вам нужно будет перезагрузить PHP-FPM: 




sudo service php-fpm reload




После перезагрузки заголовок ответа X-Powered-By: PHP/7.4 должен отсутствовать




Если не помогло, то прописываем в nginx.conf следующее




proxy_hide_header X-Powered-By;
# или
#more_clear_headers 'X-Powered-By';



[endtxt]




RSS



Добавление RSS-ленты на главную страницу этого сайта не поддерживается, так как это может привести к зацикливанию, замедляющему работу вашего сайта. Попробуйте использовать другой блок, например блок Последние записи, для отображения записей сайта.


2020-05-29T08:00:22
Nginx

Nginx открывает пустые страницы PHP с FastCGI или PHP-FPM

Перед применением этого исправления вы должны проверить свой доступ и журналы ошибок Nginx. Если вы не получили никакой ошибки в журнале ошибок и получите статус HTTP 200/OK в журнале доступа. Но, тем не менее, вы получите пустые страницы на всех страницах PHP, тогда это исправление решит вашу проблему.

Шаг 1: Конфигурация блока местоположения для всех файлов PHP

Ниже приведен блок местоположения, который мы использовали для блогов WordPress.

location ~ .php$ {

        try_files $uri /index.php =404;

        fastcgi_pass unix:/run/php/php7.3-fpm.sock;

        fastcgi_index index.php;

        include fastcgi_params;

}

Здесь мы включаем fastcgi_params из ngx_http_fastcgi_module из Nginx. Но забыли добавить следующую строку в нужный файл.

 

Шаг 2: Добавьте fastcgi_param в файл конфигурации

Нам просто нужно открыть файл /etc/nginx/fastcgi_params и добавить строку ниже в конце файла.

fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;

 

ИЛИ вы можете напрямую пропустить эту строку с помощью приведенной ниже команды.

echo "fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;" >> /etc/nginx/fastcgi_params

 

Теперь перезапустите службу PHP-FPM и службу Nginx, используя приведенные ниже команды.

systemctl restart php7.3-fpm

systemctl restart nginx

 

Примечание

Если у вас другая версия PHP-FPM, вы должны использовать ее вместо 7.3

Как указано в Nginx Docs, параметр должен быть передан на сервер FastCGI. После применения этого исправления ваши PHP-страницы должны работать. Если нет, то у вас, вероятно, была другая проблема. Вы можете написать в комментарии, как вы решили эту проблему.



2020-05-08T11:50:21
Nginx