Некоторое время назад Я вам рассказывал об этой серии уроков, о том, как установить и настроить сервер для хостинга с высокими требованиями. Эта статья будет об установке и настройке Nginx:
Нгинкс:
Мы уже говорили о Nginx ранее в статье Nginx: интересная альтернатива Apache, там мы говорили вам, что это веб-сервер, такой как Apache, LightHttpd или Cherokee, но по сравнению с Apache он выделяется своей производительностью и низким потреблением оборудования, именно поэтому многие крупные сайты, такие как Facebook, MyOpera.com, DropBox или даже WordPress .com использует Nginx вместо Apache. В мире Linux DesdeLinux Он не единственный, который использует Nginx, насколько я знаю, его также используют emsLinux и MuyLinux :)
Мой личный опыт работы с Nginx начался несколько лет назад, когда по необходимости я начал искать легкие альтернативы Apache. В то время Nginx был на версии 0.6, и его совместимость с популярными сайтами, созданными на PHP, была не самой оптимальной, однако в настоящее время, начиная с версии 0.9 и далее (v1.2.1 доступен в Debian Stable, v1.4.2 доступен в ArchLinux) значительно улучшился до такой степени, что при правильной настройке и объединении Nginx + PHP все будет работать как шарм.
В этой серии руководств Я буду использовать Nginx версии 1.2.1-2.2, доступный в стабильных репозиториях Debian (Wheezy).
1. Установка:
Начнем с первого, установим Nginx из наших репозиториев.
Если на вашем сервере вы используете дистрибутив, такой как Debian, Ubuntu или какой-либо производный в терминале, вы должны ввести следующее и нажать Enter :
aptitude install nginx
Если вы используете другой дистрибутив на своем сервере, такой как CentOS, Red Hat, Fedora, просто установите пакет: nginx из официального репозитория
2. Конфигурация:
Nginx у нас уже установлен, но нам явно нужно его настроить. Я подготовил сжатый файл на FTP, который содержит все конфигурации, используемые на серверах. DesdeLinux, как для PHP, Nginx и т. д. Давайте загрузим и разархивируем этот файл:
cd ~ && wget http://ftp.desdelinux.net/nginx-spawn-fastcgi.tar.gz && tar xf nginx-spawn-fastcgi.tar.gz
Это создаст папку с именем nginx-spawn-fastcgi, из нее нам понадобятся два файла для чистого Nginx (то есть без привязки к PHP):
- nginx.conf - »Главный конфигурационный файл Nginx (о его содержимом поговорим позже)
- index.html - »Простой html-файл, который мы будем использовать, чтобы увидеть, действительно ли Nginx работает для нас в его самой простой форме.
- mywebsite.net - »Файл конфигурации для простого веб-сайта, VHost (виртуальный хост), который будет настраивать доступ к предыдущему html
Сначала перейдем в папку настроек Nginx:
cd /etc/nginx/
Затем удалим его конфигурацию по умолчанию и поставим свою:
mv nginx.conf nginx.conf_BK && cp ~/nginx-spawn-fastcgi/nginx.conf ./
Это, как я уже сказал, основной файл конфигурации Nginx, в нем я уже определил следующее:
пользовательские www-данные; рабочий_процесс 4; pid /var/run/nginx.pid;
Доступ пользователя к файловой системе (с которой nginx будет иметь доступ везде), количество процессов для работы, а также PID (идентификатор процесса nginx).
У нас также есть небольшой блок под названием events (настройки для событий), который содержит строку, которая указывает максимальное количество подключений, разрешенных для каждого события. Ниже расположен блок с названием http.
Этот блок http содержит почти все, что связано с хостингом, по крайней мере, многие вещи, которые вас заинтересуют. Например, максимальное время жизни или ожидания (тайм-аут), в котором будут находиться наши общие журналы (access.log и error.log), сжатие данных с использованием gzip, а также другие правила, которые могут быть полезны в будущем.
После того, как основной файл конфигурации будет на месте, давайте скопируем файл с нашего VHost в папку, доступную для сайтов.
cp ~/nginx-spawn-fastcgi/mywebsite.net sites-available/
Кроме того, мы должны сделать символическую ссылку из этого файла на папку с поддержкой сайтов.
ln -s /etc/nginx/sites-available/mywebsite.net /etc/nginx/sites-enabled/
Я объясняю полезность наличия и доступности сайтов.
Они найдут моменты, когда у них должно быть несколько готовых и настроенных файлов vhost, потому что на этом сервере они будут размещать в сети, скажем, 5 сайтов. Однако случается, что еще не время включать 2 из этих 5 виртуальных хостов, но у них должны быть готовы файлы, чтобы при необходимости они были в сети в кратчайшие сроки. Вы можете разместить столько vhosts, сколько захотите, в sites-available (sites-available), потому что те, которые Nginx читает для подключения к сети, являются только теми, которые включены (sites-enabled), это также будет работать в противоположном направлении, в случае, если вы хотите отключить (например, временно) сайт, нет необходимости удалять файлы с вашего сервера (файлы, которые нам понадобятся в другое время), мы просто удаляем символическую ссылку сайтов с включенным доступом и все. Утилита наличия символических ссылок, а не просто копирования файла из одной папки в другую, заключается в том, что, когда мы хотим отредактировать виртуальный хост, не имеет значения, редактируем ли мы тот, который находится в разрешенном или доступном, в конце концов, это то же самое.
архив.
Файл mywebsite.net, как я уже сказал, vhost, который служит примером, то есть, другими словами, мы должны изменить mywebsite.net и установить наши конфигурации.
Мы должны изменить следующее:
- access_log (строка 3): это будет путь к файлу журнала доступа к этому сайту.
- error_log (строка 4): это будет путь файла журнала ошибок к этому сайту.
- имя_сервера (строка 5): URL-адрес домена, размещенного в этой папке, например, если это форум. DesdeLinux это будет: форум имя_сервера.desdelinux.net
- root (строка 6): путь к папке, где находятся файлы html, оставим его в / var / www /, так как это будет только тест
Теперь нам просто нужно скопировать html-файл в папку, которую мы определяем в нашем файле VHost, / var / www /:
mkdir /var/www/ && cp ~/nginx-spawn-fastcgi/index.html /var/www/
Затем перезапускаем Nginx и все:
service nginx restart
И вуаля, появится что-то вроде этого:
Напоминаю, что мы сначала работаем с Nginx для HTML, без поддержки PHP, эта установка PHP и привязка его к Nginx будет содержанием следующего руководства (обещаю, через несколько дней).
В любом случае, это руководство по установке и настройке Nginx, чтобы он работал в чистом виде, то есть сайт в формате HTML, надеюсь, он будет вам интересен.
Я поясню, что да, есть еще лучшие практики, которые можно использовать, однако давайте подождем, чтобы закончить эту серию руководств, а затем мы оценим окончательный результат работы 😉
привет
Спасибо, очень помогли!
Спасибо за комментарий
В бэкпортах стоит nginx 1.4 ..
Да, но на производственном сервере я ничего из этого не использую 😀
Под «этим» вы подразумеваете последнюю стабильную и протестированную версию, выпущенную nginx, вы говорите так, будто это apt-pinning от sid. ~ _ ~
Да ладно, это ... на серверах мне никогда не нравилось использовать другие репозитории, бэкпорты или что-то в этом роде 🙂
Всегда стабильно на серверах, я узнал об этом много лет назад.
Nginx 1.4 стабилен с апреля прошлого года, в бэкпортах - 1.4.1-3.
2013-04-24
Была выпущена стабильная версия nginx-1.4.0, включающая множество новых функций, разработанных в ветке 1.3.x - поддержка проксирования соединений WebSocket, сшивание OCSP, модуль SPDY, фильтр gunzip и многое другое.
http://nginx.org/en/CHANGES-1.4
Вы правы в том, что говорите, я снимаю шляпу.
Спасибо, что поделились, сейчас я претворяю в жизнь ваш самый старый пост.
Я собираюсь заполнить вас вопросами XD
Спасибо за чтение 🙂
Если у вас есть какие-либо вопросы или проблемы, вы знаете, мы здесь, чтобы помочь, есть форум.desdelinux.net, где мы вместе постараемся предложить вам лучшее решение
привет
У меня есть вопрос. У меня на сервере работает LAMP [Linux (Debian Wheezy), Apache, PHP и MySQL] для WordPress и Owncloud. Как мне перейти на Ngnix, другой вопрос - в чем разница между Ngnix и Lighttpd.
Самая большая сложность или трудность перехода с Apache на Nginx - это конфигурации каждого сайта, то есть, в частности, используемого вами .htaccess.
.Htaccess - самый сложный, когда дело доходит до перехода на Nginx, поскольку это разные конфигурации, которые вы должны поместить в VHost Nginx.
Насчет LightHTTPd и Nginx… Не знаю, много лет назад я использовал LightHTTPd только один раз, в настоящее время не имею представления, как идет его разработка, в частности с использованием PHP.
NGINX выглядит довольно просто по сравнению с Apache. Жду следующего эпизода, чтобы дополнить его PHP
Жду советов по оптимизации под nginx 😀
Кстати, Гаара, вы можете включить в свой следующий урок, как реализовать поддержку SSL.
Привет.
На самом деле приходят советы по оптимизации обработки PHP, кэширования сайта, я могу привести пример конфигурации, которую мы используем в DesdeLinux для Nginx+Wordpress+W3_Total_Cache :)
Спасибо за хороший вклад.
А руководство для Archlinux когда? xD
В Arch все было очень похоже, только названия пакетов меняются, но ... conf почти идентичен
Но у кого есть производственный сервер с Arch? 😀
Всем привет,
Это снова я xD ...
Я выполнял ваши шаги, применяя их на машине с Archlinux, и у меня возникла следующая проблема:
[abr4xas@Genius www]$ systemctl status nginx.service
nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled)
Active: failed (Result: exit-code) since vie 2013-11-15 20:11:35 VET; 1min 13s ago
Process: 1258 ExecStartPre=/usr/bin/nginx -t -q -g pid /run/nginx.pid; daemon on; master_process on; (code=exited, status=1/FAILURE)
Любые предложения 😀
Джо ... xox, мне нужен только внутренний сервер, то есть я хочу только заменить xampp, мне все это делать?
Если вы хотите, вы можете реализовать это (что, повторяю, это то, с чем работает DL), на самом деле мой виртуальный сервер (который я использую для разработки и тестирования) я сделал с тем же самым, что я объясняю.
То есть вы можете либо удалить XAMPP и поставить этот вариант, и он будет работать нормально, либо, если вы хотите оставить XAMPP ... он все равно будет работать для вас.
Положительный момент использования этого, который я показываю, - это очень низкое потребление оборудования по сравнению с Apache, но на вашем персональном компьютере, который не является хостингом с высоким спросом, это далеко не так ... если XAMPP хорошо работает для вас, я не понимаю, зачем его удалять 🙂
У меня уже работает мой Linux-сервер (Debian, Nginx, MySQL и PHP). Мне было трудно заставить PHP работать с Nginx, потому что я привык к простому веб-серверу Apache.
Ну, мой вопрос: кто-нибудь знает, как я могу указать тестовый домен, который я купил, на свой сервер? Я хотел бы попробовать свой домен .com, чтобы увидеть, как он работает, но я не имею ни малейшего представления, как это сделать, потому что я всегда использовал адрес NOIP для доступа к нему с помощью noip DUC.
Надеюсь, кто-то может мне помочь, спасибо!
Я получаю это при попытке подключиться к вашему ftp:
cd ~ && wget http://ftp.desdelinux.net/nginx-spawn-fastcgi.tar.gz && tar xf nginx-spawn-fastcgi.tar.gz
HTTP-запрос отправлен, ожидает ответа… 404 Not Found
2015-11-23 17:46:30 ОШИБКА 404: не найдено.
У меня есть сервер, работающий на CentOS (Gunicorn, Nginx, PHP), это стоило мне много работы, чтобы заставить их работать, но точка, в которой я застрял, заключается в том, что веб-страница, которую я хочу запустить, требует конфигурации поставщика домена в этом case Go Daddy, так что на данный момент я не знаю, как продолжить.
Не могли бы вы поделиться со мной файлами конфигурации, так как я не могу их скачать, пожалуйста