Questions tagged [nginx]

Nginx — легковесный веб-сервер. Используйте метку только для вопросов об использовании и конфигурации nginx.

Легковесный web-сервер. Чрезвычайно производителен при раздаче статических файлов. Разрабатывается с 2002 года. Создатель — Игорь Сысоев. Свободная (BSD подобная) лицензия. Второй по распространённости web-сервер в интернете. Используется на подавляющем большинстве shared-хостингов. Разработку и коммерческую поддержку осуществляет Nginx Inc.

Потенциальные грабли

.htaccess

Nginx не поддерживает файлы htaccess и не имеет какого-либо аналога этого механизма. Все настройки nginx должны содержаться в его конфигурационном файле (или файлах подключенных директивой include). Нет способа предоставить пользователю частичный контроль над конфигурацией nginx. Это сделано для увеличения производительности и упрощения поддержки.

Модули

Nginx использует модульную архитектуру, но подключать или отключать модули можно только в процессе компиляции nginx из исходников. Нет возможности подключить модуль к уже собранному nginx. В связи с этим в репозиториях GNU/Linux дистрибутива Debian есть несколько версий nginx, собранных с разными модулями.

Динамическое содержимое (php, python, ruby, node.js и т.д)

В nginx нет встроенных возможностей для генерации динамических страниц. Поддержка php (и прочего) осуществляется переадресацией запроса специализированному серверу приложений (например, по протоколу FastCGI) или другому веб-серверу.

Типичная конфигурация shared-хостинга такова: nginx самостоятельно обрабатывает запросы к статическим файлам (изображения, js, css – в общем, файлы, которые нужно отдать посетителю как есть), а обращения к php файлам (или просто ко всем файлам кроме указанных в конфигурации) передаются, например, веб-серверу , а apache уже выполняет php скрипты. Таким образом nginx выступает посредником (прокси, точнее, обратным прокси) между клиентом и apache.

Также, распространена конфигурация, в которой запросы пробрасываются на FastCGI сервер (например php-fpm, для php) который генерирует динамические страницы и отдаёт их nginx.

Ссылки по теме

Официальная документация (на русском)

Нужно отметить что официальная документация весьма полна, доходчива, да ещё и написана по-русски. Настоятельно рекомендуется обращаться к ней при любом удобном случае.

Базовые понятия и принципы

Частности

Сторонние ресурсы

2050 questions
7
votes
2 answers

Проксирование nginx websocket

Как правильно сделать проксирование трафика на вебсокете в конфиге nginx? http://nginx.org/ru/docs/http/websocket.html Допустим если сайт у нас расположен на 80 порте, а вебсокет по адресу ws://site.ru:2000
azimut
  • 327
7
votes
1 answer

Nginx, http/2 и ошибка ERR_SPDY_INADEQUATE_TRANSPORT_SECURITY

Подключаю в конфиге nginx-а поддержку протокола HTTP/2: server { ... listen 433 ssl http2; ... ssl on; ssl_certificate "....crtca"; ssl_certificate_key "....key"; ssl_ciphers…
5
votes
1 answer

Как изменить параметр fastcgi в конкретном location?

Пытаюсь изменить значение параметра fastcgi_read_timeout для админского раздела, но не выходит. Вот как выглядит мой конфиг: server { listen 443 ssl default_server; root /srv/www/site/public; index index.php index.html; ssl …
5
votes
1 answer

Передача параметров при проксировании

server { listen 80; server_name my_site.ru; access_log /home/www/my_site/logs/nginx_access.log; error_log /home/www/my_site/logs/nginx_error.log; root /home/www/my_site; index index.html index.htm; …
Ks Ks
  • 79
4
votes
2 answers

Как сделать в nginx переадресацию на мобильную версию?

Необходимо сделать переадресацию на мобильную версию сайта расположенную по адресу site.com/m , но при этом, если заходит на site.com/full то не зависимо должен переадресовывать на site.com/ Нашел такое решение set $mobile_request false; …
4
votes
1 answer

Не удается раздать статику с nginx

Сконфигурировал сервер на отдачу статики, получаю "403 Forbidden" Мой конфиг: worker_processes 1; events { worker_connections 1024; } http{ server{ location / { root /home/danya/Desktop/data/www; } …
4
votes
3 answers

Помогите правильно настроить nginx

Пытаюсь поставить медиа сервер на ubuntu, делаю все как здесь. но в конце, при выполнении команды sudo /usr/local/nginx/sbin/nginx nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use) nginx: [emerg] bind() to 0.0.0.0:1935 failed…
Стас
  • 125
3
votes
1 answer

Получение get параметра в nginx

Нужно в nginx получить get параметр. Например при запросе на http://my-example.loc/page1?foo=123 в конфиге nginx-а получить этот URL, get параметр foo и присвоить его в переменную. Понимаю что задача элементарная, но от написания конфигов для…
abakan
  • 651
3
votes
1 answer

Nginx: Перенаправление на другую папку

Структура моего преокта: index.php \web | |----\111 | |---- index.php | |----\222 |---- index.php Я хочу попасть в папку 111 и 222 используя следующую структуру ссылки: http://example.com/wp111 (для web/111…
Tartar
  • 31
3
votes
1 answer

NGINX burst + nodelay против большего лимита запросов

Привет Всем! Из документации NGINX "Если же избыточные запросы в пределах лимита всплесков задерживать не требуется, то следует использовать параметр nodelay". То есть имея "nodelay" запросы в пределах burst будут обработаны немедленно? Тогда есть…
3
votes
1 answer

Автогенерация Access log пути в nginx

На сервере лежит несколько файлов для скачивания, которые удовлетворяют regex location:location ~* /(en/ru)/([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+\.exe){ access_log /var/www/logs/any.access.log}Файлов не так много (около 10), поэтому хотелось бы для…
org
  • 2,459
3
votes
1 answer

Как отдать файл на скачивание, изменив его имя на новое, которое хранится в базе данных?

Помогите. Облазил весь инет, читал документацию, но никак не получается это сделать. Сервер: nginx в связке php-fpm. ЯП: php Как я понял из общих положений, сделать можно разными способами, но мне видимо не хватает знаний и опыта в этом. Пока что у…
2
votes
1 answer

nginx multiple subdomains

Есть множество сайтов на одном домене. На данный момент все ручками прописано - каждый сайт в своем конфиге. Можно ли сделать так, чтобы поддомен автоматически подставлялся на основе существующих папок в /var/www/html/sitename. Если возможно, то…
Paul Wall
  • 1,733
2
votes
0 answers

Подключение сертификата из переменной домена

Интересует вопрос с подключением сертификата с помощью переменной домена. Судя по документации Начиная с версии 1.15.9 в имени файла можно использовать переменные при использовании OpenSSL 1.0.2 и выше Требования соблюдены, но ничего не…
2
votes
1 answer

Как в nginx сделать проверку авторизации?

Требуется в nginx при успешной авторизации отобразить данные / редиректнуть на другой адрес. Подключал следующим образом: server{ ... auth_basic "Admin Zone"; auth_basic_user_file .../.htpasswd; ... location / { proxy_pass ... …
Lancelot
  • 561
1
2 3
20 21