Как использовать Nginx? | Все что вы хотели знать о хостинге и сайтостроении

Как использовать Nginx?


Рубрика: Nginx

Nginx — этот третий по популярности веб-сервер в мире, который по данным за 2012 год обслуживает более 70 миллионов сайтов. Nginx используют 12,49% активных сайтов, что делает его вторым по популярности среди активных сайтов, на первом месте находится Apache.  Nginx используют Rambler, Yandex, Mail.ru, Begun, WordPress.com, vk.com, Rutracker.org множество других проектов. Секрет прост — это легкий и высокопроизводительный сервер, способный выдержать колоссальные нагрузки. К его возможностям относятся SSL/TLS, виртуальные хосты, отдача статических файлов. Сжатие, балансировка, подмена ссылок, управление доступом и т. д. Как используется  Nginx? Есть три варианта.

Как использовать Nginx?

standalone или на отдельном порту/IP

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

В этом случае конфигурация использования Apache и nginx простая и легкая, поскольку рабоатть они будут на отдельных портах. Адрес веб-сервера для обслуживания запросов будет содержаться в URLзапроса. Однако конфигурация должна ограничить круг расширений файлов, передаваемых посетителю. В список расширений нужно включать только картинки, таблицы стилей CSS и другие статичные файлы, иначе возникнет путаница, и когда пользователь будет запрашивать скрипт у  nginx, он будет получать просто исходный код.

Вид сервера для настройки nginx на отдельный порт:

server {

listen 8080;

server_name example.com;

location ~* \.(jpg|gif|png|css|js)$ {

root /var/www/example.com;

}

}

Вид сервера для настройки nginx на отдельный IP:

server {

listen 192.168.1.1:80;

server_name static.example.com;

location ~ «\.(jpg|gif|png|css|js)$» {

root /var/www/example.com;

}

}

Если используете nginx на отдельный IP укажите Apache не использовать этот порт с помощью параметра Listen.

 

Frontend к Apache или акселерация

Возможен и другой тип настройки, когда все запросы поступают на nginx. Простые запросы (HTML, изображения, таблицы стилей, JavaScript) nginx обрабатывает сам. При обращении к скрипту, Nginx передает запрос к Apache. Этот способ не требует изменений в коде, а если канал между пользователем и сервером медленный, то это напротив имеет свои преимущества. После получения запроса о nginx, Apache обрабатывает его на nhinx, отправляет страницу и закрывает соединение, а уже nginx может долго передавать страницу пользователю, не задействовав системные ресурсы.

Чтобы снизить нагрузку на сервер и одновременно уменьшить время отклика, нужно перенести Apache   на другой порт и поставить на его место nginx  с помощью параметра Listen, например:

Listen 127.0.0.1:80

Если у вас несколько IP, то нужно указывать несколько параметров Listen. Не забудьте прописать и параметры для nginx, а они будут следующими:

server {

listen 192.168.1.1:80;

server_name example.com www.example.com;

location / {

proxy_pass http://127.0.0.1:80/;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}

location ~* \.(jpg|gif|png|css|js)$ {

root /var/www/example.com/;

}

}

Строки X-Real-IP и X-Forwarded-For нужны для сбора информации об IP визитеров.

 

P.S.

nginx + FastCGI

Если интерпритатор вашего языка скриптов поддерживает FastCGI, такие как, например,  Perl или PHP, то  Apache не нужен вовсе. Но в этом случае может понадобиться модификация скриптов.

Если вам понравилась статья или была полезна, поделитесь ею с друзьями: