Настройка web-сервера Lighttpd на работу со статическими файлами сетевой файловой системы (NFS)
Пятый урок цикла статей по настройке web-стека LAMP на виртуальных машинах будет посвящен обслуживанию статических файлов.
lighttpd web-сервер отвечает за предоставление доступа через HTTP или HTTPS протокол к статическому контенту. В этом примере я собираюсь установить и использовать Lighttpd web-сервер, привязав DocumentRoot к vm05:/exports/static mounted смонитрованной в /var/www/static. Все приведенные ниже команды вам необходимо вводить исключительно на vm01 с IP-адресом 192.168.1.10.
Настройка NFS-клиента
С помощью yum-менеджера установим пакеты NFS-клиента:
# yum groupinstall "Network file system client"
Или чуть проще:
# yum install nfs-utils nfs4-acl-tools
Включим службы NFSv4-клиента:
# chkconfig rpcbind on # chkconfig rpcidmapd on # chkconfig nfslock on
/etc/idmapd.conf настройки nfs-клиента
Отредактируем файл конфигурации nfs-клиента
# vi /etc/idmapd.conf
Убедитесь, что параметры выставлены в соответствии с доменным именем NFS-сервера:
Domain = cyberciti.biz [Mapping] Nobody-User = nobody Nobody-Group = nobody
Сохраните и закройте файл. Запустим все службы NFS-клиента:
# /sbin/service rpcbind start # /sbin/service rpcidmapd start # /sbin/service nfslock start
Создание учетной записи пользователя
Мы будем запускать web-сервера Lighttpd только из под пользователя apache. Что бы добавить учетную запись пользователя в Linux, введем следующие команды:
# /usr/sbin/groupadd -g 48 apache # /usr/sbin/useradd -s /sbin/nologin -g 48 -u 48 -M -d /var/www apache # /usr/bin/passwd -l apache
Монтируем файловую систему
Введите следующую команду:
# showmout -e vm05
Пример вывода:
Export list for v.txvip1: /exports/html 192.168.1.10,192.168.1.11 /exports/static 192.168.1.10,192.168.1.11
Смонтируем /exports/static папку файловой nfs-системы к /var/www/static
# mkdir /var/www/static # /bin/mount -t nfs4 -orsize=32768,wsize=32768,intr,hard,proto=tcp,sync vm05:/exports/static /var/www/static/
Отредактируем файл /etc/fstab:
# vi /etc/fstab
Монтирование файловой системы через /etc/fstab
Отредактируем /etc/fstab:
# vi /etc/fstab
Добавим следующую строку:
vm05:/exports/static /var/www/static nfs4 orsize=32768,wsize=32768,intr,hard,proto=tcp,sync
Сохраним и закроем файл. Убедимся, что netfs-служба включена:
# chkconfig netfs on
И, наконец, убедимся в том, что пользователь apache видит наши файлы
# su - apache $ ls /var/www/static/ $ exit #
Обратите внимание, что root-пользователь или любой другой пользователь не видит /var/www/ static из-за установленной нами политики безопасности. Это единственный lighttpd-пользователь, имеющий права на доступ к DocumentRoot.
Установка Lighttpd web-сервера
Подключите EPEL-репозиторий и установите web-сервер Lighttpd
# yum install lighttpd
Пример вывода консоли:
Loaded plugins: rhnplugin Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package lighttpd.x86_64 0:1.4.28-3.el6 will be installed --> Finished Dependency Resolution Dependencies Resolved ========================================================================== Package Arch Version Repository Size ========================================================================== Installing: lighttpd x86_64 1.4.28-3.el6 epel 328 k Transaction Summary ========================================================================== Install 1 Package(s) Total download size: 328 k Installed size: 878 k Is this ok [y/N]: y Downloading Packages: lighttpd-1.4.28-3.el6.x86_64.rpm | 328 kB 00:00 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Installing : lighttpd-1.4.28-3.el6.x86_64 1/1 Installed: lighttpd.x86_64 0:1.4.28-3.el6 Complete!
Настройка web-сервера Lighttpd
Отредактируем /etc/lighttpd/lighttpd.conf введя следующие команды:
# mv /etc/lighttpd/lighttpd.{conf,default.bak}<br /> # vi /etc/lighttpd/lighttpd.conf
Впишем следующие настройки:
## Настройка статики для http://static.cyberciti.biz server.modules = ( "mod_expire", "mod_access", "mod_accesslog", "mod_setenv", "mod_extforward" ) server.errorlog = "/var/log/lighttpd/error.log" accesslog.filename = "/var/log/lighttpd/access.log" index-file.names = ( "index.html", "index.htm", "default.htm" ) server.tag = "lighttpd" server.network-backend = "linux-sendfile" ## разрешать доступ только для lan-запросов ## server.port = "80" server.bind = "192.168.1.10" server.document-root = "/var/www/static" server.pid-file = "/var/run/lighttpd.pid" server.username = "apache" server.groupname = "apache" ## вся статика кешируется на 30 дней от первого доступа ## $HTTP["url"] =~ "^/" { expire.url = ( "" => "access 30 days" ) } ### Логировать реальный ip-адрес пользователя ### ### 192.168.1.{1,2} == nginx resverse proxy server ## extforward.headers = ("X-Forwarded-For") extforward.forwarder = ( "192.168.1.1" => "trust", "192.168.1.2" => "trust" ) ## ## mimetype mapping ## include "conf.d/mime.conf"
Сохраним и закроем файл
Настройка iptables для доступа к web-серверу
Отредактируйте файл /etc/sysconfig/Iptables, добавив следующие параметры (убедитесь, что они прописаны до окончательных LOG и DROP настроек INPUT-цепочки):
## разрешить доступ только из локальной сети ## -A INPUT -m state --state NEW -p tcp -s 192.168.1.0/24 --dport 80 -j ACCEPT
Сохраняем, закрываем. Перезапускаем iptables:
# /sbin/service iptables restart # /sbin/iptables -L -v -n
Включаем Lighttpd
Запускам Lighttpd web-сервер следующей командой:# chkconfig lighttpd on # service lighttpd start
Врубаем браузер и ломимся на наш сервер:
http://192.168.1.10/
- Вводная часть
- Шаг №1: Настройка / Установка: NFS файловый сервер
- Шаг №2: Настройка / установка: сервер баз данных MySQL
- Шаг №3: Настройка / Установка: Memcached сервера кэширования
- Шаг №4: Настройка / Установка: Apache + php5 приложение веб-сервера
- Шаг №5: Настройка / Установка: веб-сервер Lighttpd для статических активов
- Шаг №6: Настройка / Установка: Nginx обратный (reverse) прокси-сервер
