bigton
@bigton
Web-программист

Как настроить web-сервер с нуля?

Всем привет.

Есть выделенный сервер (Core i7/64Gb/1Tb) с установленным образом Debian 7.8 64 minimal. Мне нужно на базе этого сервера поднять web-сервер на PHP.

Я много лет для конфигурации сервера использовал ISPmanager, который устанавливал и настраивал всё ПО за меня. Тем, кто использовал ISPmanager известно, что он ставит классическое ПО в классических связках (классическое = проверенное временем). Помимо этого он тянет за собой ПО, которое вы, возможно, не будите использовать.

У меня есть желание научиться устанавливать и настраивать все ПО самостоятельно. Я много времени потратил на поиск HowTo, который ответил бы на все мои вопросы, но ничего ценного не нашел. Все HowTo по "настройке web-сервера с нуля" (от блогеров и от крупных компаний типа DigitalOcean) сводятся к простому "apt-get install apache php mysql". Но этого недостаточно для production сервера. Мне нужен HowTo, который говорил бы какую связку php/nginx/apache/fastcgi/php-fpm лучше использовать; говорил бы о том, что вместо memcache лучше поставить redis; рассказывал бы о защите от возможных атак. На основе такого HowTo я хотел бы сконфигурировать максимально производительный и безопасный сервер.

Вот ISPmanager ставит связку php+apache, а может быть связка php+php-fpm+nginx гораздо лучше и безопасней? При этом ISP не ставит fail2ban, и я посмотрел iptables - он пустой. Мне на сервере не нужно принимать почту, а нужно только отправлять, а ISP ставит dovecot, а мне нужен только exim. Но так как я не знаю, что делает ISP кроме установки пакетов, у меня складывается ощущение что он делает много всего. И если я от него откажусь и буду ставить пакеты руками, то мой сервер будет дырявым.

Я все довольно сумбурно описал. Может быть мне нужно сперва изучить debian, чтобы не задавать таких вопросов. Но все же, есть ли такой или кто-то может составить такой HowTo, чтобы получился предельно современный и надежный сервер?

Спасибо.

UPDATE 30.01.2014 08:13

Судя по ответам, некоторые подумали, что я задал вопрос в стиле "как сделать сайт" или "какой редактор кода лучше", то есть вопрос не имеющий единственно верного ответа и каждый ответ будет субъективен. Так же я не ищу "волшебной кнопки" (волшебная кнопка уже есть - ISPmanager) и не ищу тонкой настройки сервисов (о чем написано на ruhighload.com).

Для такого, чтобы было понятно какую информацию я хочу получить, я задам несколько прямых вопросов:

1. Я скачал с официального сайта образ и установил на сервер debian 7.8 64. На сколько мой сервер безопасен? Моих знаний хватает только на, чтобы видеть 2 уязвимости:
- уязвимость в debian (ошибки в коде, закладки) - от этого я защититься никак не могу, да и никто не может;
- уязвимость получения root пароля брутфорсом - от этого я могу защитится закрыв в iptables все порты на вход, открыв только 22 порт (ssh) для своего IP.
То есть в моем понимании "голый" debian становится пуленепробиваемым после закрытия его от мира с помощью iptables, так ли это?

2. Вот я почитал статью, и понял, что мне для background PHP сервера лучше всего подходит apache mod_php (лучше связки nginx+php_fpm), то есть на голом debian мне нужно выполнить команду "apt-get install apache2 php5". Потом я могу использовать конфиг php по умолчанию, а в конфиге apache добавить информацию по своему домену. Далее дополняю настройки iptables из первого вопроса тем, что открываю на вход 80 порт. После чего я получаю пуленепробиваемый web сервер, так ли это?
  • Вопрос задан
  • 5664 просмотра
Пригласить эксперта
Ответы на вопрос 4
По перфомансу советую ruhighload.com
Там всё кратко и лаконично, но главное определен вектор направления.

А так, нет единого ресурса, где написано от и до про всё, что потребуется узнать. Нужно узнать про exim - гугли и читай про него, хочешь узнать подробно про xtrabackup - зайди на сайт percona, скачай мануал и читай и т. д.
Ответ написан
Комментировать
1nn0
@1nn0
Системный администратор\Фрилансер
Я думаю, такой гайд просто не существует. В Вашей ситуации я бы порекомендовал "плясать" от задачи.
1) Определяем под какие задачи\приложение(я) мы готовим сервер.
2) Определяем системные требования данных приложений.
3) На основе системных требований выбираем оптимальный набор ПО.
4) Разбиваем настройку ПО по категориям-функциям (fail2ban, MTA, web, firewall)
5) Идем на Хабр или же не на хабр и ищем гайды и мануалы по вашему ПО.
6) ...
7) PROFIT!

P.S.: Если Вы привыкли к ISP-manager, то я порекомендовал бы Вам сначала потренироваться с настройкой связок на виртуалке, хотя бы базовые "грабли" преодолеете и поймете, нужно оно вообще Вам.
Ответ написан
Комментировать
@dxd
system administrator
Запрос похож на "хочу кнопку "сделать (звезда)то!"".
В данном случае собирать информацию, анализировать, пробовать. С первого раза уверен не получится добиться желаемый эффект.
Встречный вопрос: как Вы думаете, почему появилось так много вариантов реализации одной задачи?
Ответ написан
Комментировать
@inkvizitor68sl
Linux-сисадмин с 8 летним стажем.
Э не.
Готового мануала такого нет и не будет.

Он банально не имеет смысла. Ищите по частям.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы