Где разместить веб-контент для нескольких доменов на сервере на основе RHEL?

Я настраиваю веб-сервер RHEL, который будет размещать статический и динамический контент для нескольких доменных имен. Несколько пользователей будут обновлять файлы по SSH и SFTP.

Где следует размещать файлы для каждого доменного имени? На моей системе по умолчанию есть один /var/www/, но не знаю, как найти несколько доменов.

Глядя на стандарт иерархии файловой системы ( http://www.pathname.com/fhs/pub/fhs-2.3.html), кажется, что лучший вариант:

/srv/example.com/www/
/srv/example.org/www/

Любые предпочтения?

4 ответа

Решение

Apache по умолчанию обычно /var/www/example.com/ но вы можете также следовать рекомендациям FHS, которые я нахожу достаточно хорошими. Важно то, что вы сохраняете согласованность между системами, поэтому FHS - хороший пример для подражания.

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

  • Если он заполняется, не повлияет на сервер
  • Вы можете установить параметры монтирования, такие как noexec для дополнительной безопасности

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

У нас очень хороший опыт со структурой

/srv/www/example.com/html
/srv/www/example.com/sub-d/www
/srv/www/example.com/sub-d/beta
/srv/www/example.com/sub-d/logs (if preferred)

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

/srv/www/client1/doma.in/html
/srv/www/client1/secon.nd/html
/srv/www/client2/foob.ar/html

Мне нравится соглашение /var/www/example.com.

Мне нравится иметь conf в /etc/httpd/vhosts.d/example.com.conf и включен в основной apache conf. Я не позволяю клиенту редактировать это. Таким образом, если вы добавляете новый домен, а configtest, перезагрузка или перезапуск обнаруживает ошибку, тогда действительно легко отказаться.

С: /var/www/example.com/html /var/www/example.com/cgi-bin /var/www/example.com/log

Я использую posix acls, чтобы добавить acls по умолчанию к указанным выше папкам, чтобы любые создаваемые ими файлы создавались с помощью rwx для их пользователя на сервере (тот, который используется в suexec) / group, чтобы независимо от того, кем они являются при создании файла пользователь веб-сервера может получить к ним доступ, и поэтому члены группы пользователей VritualHosts могут получить доступ ко всем файлам.

/var/www/example.com/private Я использую private как место для хранения файлов паролей и групп.

/var/www/example.com/conf/example.com.include.conf Если я хочу разрешить владельцу сайта вносить изменения в конфигурацию, я также создаю файл, например: /var/www/example.com/conf/example.com.include.conf, который включен в VirtualHost в основной конфигурации для домена, т.е. /etc/httpd/vhosts.d/example.com.conf.

Вы должны быть осторожны с этим, поскольку это означает, что пользователь может нарушить всю вашу конфигурацию, поэтому вы хотите быть очень осторожным, чтобы пользователь знал, что он делает. Я склонен делать это, когда существует сервер с несколькими виртуальными хостами, принадлежащими одному и тому же клиенту, поэтому, если нарушить конфигурацию, они нарушат только свои собственные сайты.

Я бы также предложил использовать suexec, который позволяет запускать процессы от имени пользователя, отличного от apache, а также позволяет запускать динамический контент как пользователи, отличные от пользователя apache.

Смотрите: http://httpd.apache.org/docs/2.2/suexec.html

Возможно, вы также захотите взглянуть на различные директивы RLmit, которые позволяют вам разрешать использование ресурсов на основе VirtualHost и т. Д. Увидеть:

http://httpd.apache.org/docs/2.2/mod/core.html

Мы используем следующий макет

/var/www/domains/$DOMAIN/$HOST/{htdocs,logs}

Итак, принимая www.google.com В качестве примера

<VirtualHost *:80>
   ServerName www.google.com

   DocumentRoot /var/www/domains/google.com/www/htdocs

   ErrorLog /var/www/domains/google.com/logs/error_log
   CustomLog /var/www/domains/google.com/logs/access_log combined
</VirtualHost>
Другие вопросы по тегам