Настройка 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) прокси-сервер
Автор: danielnewman