- PVSM.RU - https://www.pvsm.ru -
Пятый урок цикла статей по настройке web-стека LAMP на виртуальных машинах [1]будет посвящен обслуживанию статических файлов.
lighttpd web-сервер отвечает за предоставление доступа через HTTP или HTTPS протокол к статическому контенту. В этом примере я собираюсь установить и использовать Lighttpd web-сервер, привязав DocumentRoot к vm05:/exports/static mounted смонитрованной в /var/www/static. Все приведенные ниже команды вам необходимо вводить исключительно на vm01 с IP-адресом 192.168.1.10.
С помощью yum-менеджера [2] установим пакеты NFS-клиента:
# yum groupinstall "Network file system client"
Или чуть проще:
# yum install nfs-utils nfs4-acl-tools
Включим службы NFSv4-клиента:
# chkconfig rpcbind on
# chkconfig rpcidmapd on
# chkconfig nfslock on
Отредактируем файл конфигурации 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 [3], введем следующие команды:
# /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:
# 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.
Подключите EPEL-репозиторий [4] и установите 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!
Отредактируем /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"
Сохраним и закроем файл
Отредактируйте файл /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 [5]:
# /sbin/service iptables restart
# /sbin/iptables -L -v -n
Запускам Lighttpd web-сервер [6] следующей командой:
# chkconfig lighttpd on
# service lighttpd start
Врубаем браузер и ломимся на наш сервер:
http://192.168.1.10/
Автор: danielnewman
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/veb-razrabotka/12094
Ссылки в тексте:
[1] цикла статей по настройке web-стека LAMP на виртуальных машинах : http://habrahabr.ru/post/147864/
[2] yum-менеджера: http://www.cyberciti.biz/faq/rhel-centos-fedora-linux-yum-command-howto/
[3] добавить учетную запись пользователя в Linux: http://www.cyberciti.biz/faq/howto-add-new-linux-user-account/
[4] Подключите EPEL-репозиторий: http://www.google.com/url?q=http%3A%2F%2Fwww.cyberciti.biz%2Ffaq%2Ffedora-sl-centos-redhat6-enable-epel-repo%2F&sa=D&sntz=1&usg=AFQjCNHo71WXAx1ws9z2WmKKArGKaJ56mw
[5] Перезапускаем iptables: http://www.google.com/url?q=http%3A%2F%2Fwww.cyberciti.biz%2Ffaq%2Fhowto-start-iptables-under-rhel-centos-linux%2F&sa=D&sntz=1&usg=AFQjCNFvFhqYFfxijENg-ua8KiJexDK4Ug
[6] Запускам Lighttpd web-сервер: http://www.cyberciti.biz/faq/stop-lighttpd-server/
[7] Шаг №1: Настройка / Установка: NFS файловый сервер: http://habrahabr.ru/post/148004/
[8] Шаг №2: Настройка / установка: сервер баз данных MySQL: http://habrahabr.ru/post/148077/
[9] Шаг №3: Настройка / Установка: Memcached сервера кэширования: http://habrahabr.ru/post/148488/
[10] Шаг №4: Настройка / Установка: Apache + php5 приложение веб-сервера: http://habrahabr.ru/post/148489/
[11] Шаг №5: Настройка / Установка: веб-сервер Lighttpd для статических активов: http://habrahabr.ru/post/148490/
[12] Шаг №6: Настройка / Установка: Nginx обратный (reverse) прокси-сервер: http://habrahabr.ru/post/148491/
Нажмите здесь для печати.