Установка на Wi Fi маршрутизатор Keenetic ОС Entware lighttpd Веб сервер

Тут будет некоторая информация по keenetic
Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 914
Стаж: 5 лет 11 месяцев
Откуда: Вологодская область
Благодарил (а): 1 раз
Поблагодарили: 42 раза
Контактная информация:

Установка на Wi Fi маршрутизатор Keenetic ОС Entware lighttpd Веб сервер

Сообщение Артём Мамзиков »

Репозиторий с пакетами
Обновление и установка в данной OS производится командами
opkg list – команда выдает список пакетов, которые можно установить в настоящий момент.
opkg list-installed – команда выдает список уже установленных пакетов

Код: Выделить всё

opkg update
– команда скачивает список пакетов, которые могут быть установлены. Рекомендуется всегда выполнять эту команду перед установкой пакета

Код: Выделить всё

opkg upgrade
– команда обновляет установленные пакеты, если есть обновления.
opkg install <имя пакета> – команда устанавливает пакет включая пакеты, от которых устанавливаемый пакет зависит. Например “opkg install mc” установит Midnight Commander.
opkg remove <имя пакета> – команда удалит установленный ранее пакет.

Установка веб сервера lighttpd

Код: Выделить всё

opkg install lighttpd
Описание пакетов
Показать
lighttpd: Гибкий и легкий веб-сервер, оптимизированный для высокой производительности.
lighttpd-mod-access: Модуль для ограничения доступа к ресурсам сервера.
lighttpd-mod-accesslog: Модуль для ведения журнала доступа к серверу.
lighttpd-mod-alias: Модуль для создания псевдонимов каталогов и файлов.
lighttpd-mod-auth: Модуль для аутентификации пользователей.
lighttpd-mod-authn_file: Модуль аутентификации с использованием файлов.
lighttpd-mod-authn_ldap: Модуль аутентификации через LDAP.
lighttpd-mod-cgi: Модуль для поддержки CGI (Common Gateway Interface).
lighttpd-mod-deflate: Модуль для сжатия динамического вывода.
lighttpd-mod-evhost: Модуль для улучшенного управления виртуальными хостами.
lighttpd-mod-expire: Модуль для управления сроками действия кэшированных ресурсов.
lighttpd-mod-extforward: Модуль для извлечения информации о клиенте из заголовков.
lighttpd-mod-fastcgi: Модуль для поддержки FastCGI.
lighttpd-mod-magnet: Модуль для динамического управления обработкой запросов.
lighttpd-mod-maxminddb: Модуль для работы с базами данных MaxMind (геолокация).
lighttpd-mod-openssl: Модуль для поддержки TLS/SSL с использованием OpenSSL.
lighttpd-mod-proxy: Модуль для работы в качестве прокси-сервера.
lighttpd-mod-redirect: Модуль для перенаправления URL-адресов.
lighttpd-mod-rewrite: Модуль для перезаписи URL-адресов.
lighttpd-mod-rrdtool: Модуль для интеграции с RRDTool (графики и мониторинг).
lighttpd-mod-scgi: Модуль для поддержки SCGI (Simple Common Gateway Interface).
lighttpd-mod-setenv: Модуль для установки переменных окружения.
lighttpd-mod-simple_vhost: Простой модуль для управления виртуальными хостами.
lighttpd-mod-sockproxy: Модуль для проксирования сокетов.
lighttpd-mod-ssi: Модуль для обработки серверных включений (SSI).
lighttpd-mod-status: Модуль для отображения состояния сервера и статистики.
lighttpd-mod-userdir: Модуль для поддержки пользовательских каталогов.
lighttpd-mod-vhostdb: Модуль для работы с базой данных виртуальных хостов.
lighttpd-mod-webdav: Модуль для поддержки протокола WebDAV.
lighttpd-mod-wstunnel: Модуль для туннелирования WebSocket-соединений.
Установка всех разом пакетов
1 часть пакетов

Код: Выделить всё

opkg install lighttpd lighttpd-mod-access lighttpd-mod-accesslog lighttpd-mod-alias lighttpd-mod-auth lighttpd-mod-authn_file lighttpd-mod-authn_ldap lighttpd-mod-cgi lighttpd-mod-deflate lighttpd-mod-evhost lighttpd-mod-expire lighttpd-mod-extforward lighttpd-mod-fastcgi lighttpd-mod-magnet lighttpd-mod-maxminddb lighttpd-mod-openssl lighttpd-mod-proxy lighttpd-mod-redirect lighttpd-mod-rewrite lighttpd-mod-rrdtool lighttpd-mod-scgi lighttpd-mod-setenv lighttpd-mod-simple_vhost lighttpd-mod-sockproxy
2 часть пакетов

Код: Выделить всё

opkg install lighttpd-mod-ssi lighttpd-mod-status lighttpd-mod-userdir lighttpd-mod-vhostdb lighttpd-mod-webdav lighttpd-mod-wstunnel
Для WebDav необходим sqlite3

Код: Выделить всё

opkg install libsqlite3 sqlite3-cli
Создать

Код: Выделить всё

sqlite3 /opt/var/lib/lighttpd/webdav.db
файл

Код: Выделить всё

ls -l /opt/var/lib/lighttpd/webdav.db
Даем права

Код: Выделить всё

chown nobody:nobody /opt/var/lib/lighttpd

Код: Выделить всё

chmod 755 /opt/var/lib/lighttpd
Задать пароль для пользователя admin

Код: Выделить всё

htpasswd -c /opt/etc/lighttpd/.htpasswd admin
После выполнения этой команды вам будет предложено ввести и подтвердить пароль для пользователя admin.
htpasswd /opt/etc/lighttpd/.htpasswd другой_пользователь

проверить его содержимое (пароли будут зашифрованы):
cat /opt/etc/lighttpd/.htpasswd


Настройка

Переходим в папку с конфигурационными файлами

Код: Выделить всё

cd /opt/etc/lighttpd
Пример
Стандартные порты 80 и 443 уже заняты стандартным интерфейсом keenetic

Проверка свободности порта

Код: Выделить всё

netstat -nlpu | grep :8055

Код: Выделить всё

netstat -nlpu | grep :8057
Если не найдено ничем не используется можно указать их

Порт 8055 - lighttpd http
Порт 8057 - lighttpd https
доменное имя в пример будет test.diyit.ru с привязанным белым IP

Что бы получить доступ снаружи данные порты не обходимо открыть в веб интерфейсе роутера
Межсетевой экран > Подключения Ethernet

После настройки конфигурационных файлов
Запустить службу Apache

Код: Выделить всё

/opt/etc/init.d/S80lighttpd start
Или запустить командой для теста

Код: Выделить всё

lighttpd -f /opt/etc/lighttpd/lighttpd.conf
Просмотреть логи

Код: Выделить всё

cat /opt/var/log/lighttpd/error.log
Чтобы проверить, запущен ли Lighttpd от имени пользователя « nobody », воспользуемся следующей командной строкой:

Код: Выделить всё

ps | grep -i lighttpd
Пример файлов
lighttpd-conf.zip
lighttpd-conf.zip
(319.27 КБ) 0 скачиваний
Установка на Wi Fi маршрутизатор Keenetic ОС Entware PHP

Веб файлы по умолчанию хранятся в /opt/share/www/

По раздельности открытый и закрытый ключ ssl у меня так и не захотели работать выдают ошибку
lighttpd -f /opt/etc/lighttpd/lighttpd.conf
2025-01-17 20:22:06: (../src/mod_openssl.c.1485) SSL: couldn't read private key from '/opt/etc/lighttpd/ssl/fullchain.pem'
2025-01-17 20:22:06: (../src/server.c.1655) Initialization of plugins failed. Going down.

Сделал в один файл все заработало
ssl.pemfile = "/opt/etc/lighttpd/ssl/lighttpd.pem"

Скрипт для копирования сертификатов

Добавляем в планировщик заданий cron запуск скрипт раз в сутки и при загрузке

Код: Выделить всё

mcedit /opt/etc/crontab
1 1 * * * root `/opt/etc/lighttpd/certs.sh` > /dev/null 2>&1
@reboot root `/opt/etc/lighttpd/certs.sh` > /dev/null 2>&1

сам скрипт certs.sh

Код: Выделить всё

#!/bin/sh

cat /opt/debian/etc/letsencrypt/live/test.diyit.ru/fullchain.pem > /opt/etc/lighttpd/ssl/fullchain.pem
cat /opt/debian/etc/letsencrypt/live/test.diyit.ru/privkey.pem > /opt/etc/lighttpd/ssl/privkey.pem
cat /opt/debian/etc/letsencrypt/live/test.diyit.ru/chain.pem > /opt/etc/lighttpd/ssl/chain.pem
cat /opt/etc/lighttpd/ssl/privkey.pem /opt/etc/lighttpd/ssl/fullchain.pem > /opt/etc/lighttpd/ssl/lighttpd.pem
chmod 700 /opt/etc/lighttpd/ssl -R
chown nobody:nobody /opt/etc/lighttpd/ssl -R
# Доступ к сокету PHP права на папку run
chmod 777 /opt/var/run/

Права на файлы

Код: Выделить всё

chown -R nobody:nobody /opt/share/www/

Код: Выделить всё

chown -R nobody:nobody /opt/var/log/lighttpd/

Код: Выделить всё

mcedit /opt/etc/lighttpd/lighttpd.conf

Код: Выделить всё

### Документация
# https://wiki.lighttpd.net/
#
### Синтаксис конфигурации
# https://wiki.lighttpd.net/Docs_Configuration
#
### Параметры конфигурации
# https://wiki.lighttpd.net/Docs_ConfigurationOptions
#
### Конфигурационные переменные (потенциально используемые в /opt/etc/lighttpd/conf.d/*.conf)
var.log_root    = "/opt/var/log/lighttpd/"
var.server_root = "/opt/share/www/"
var.state_dir   = "/opt/var/run/"
var.home_dir    = "/opt/var/lib/lighttpd/"
var.conf_dir    = "/opt/etc/lighttpd"
var.vhosts_dir  = server_root + "/vhosts"
var.cache_dir   = "/opt/var/cache/lighttpd"
var.socket_dir  = home_dir + "/sockets"

### Базовая конфигурация OpenWRT lighttpd
server.document-root        = server_root
server.port = 8055
server.upload-dirs          = ( "/opt/tmp" )
server.errorlog             = log_root + "error.log"
server.pid-file             = state_dir + "lighttpd.pid"
server.username             = "nobody"
server.groupname            = "nobody"


# Настройки для SSL на порту 8057
$SERVER["socket"] == ":8057" {
    # включить/отключить движок ssl
    ssl.engine = "enable"
    # путь к цепочке сертификатов PEM-файла (должен содержать как цепочку сертификатов, так и закрытый ключ (если не установлен ssl.privkey))
    ssl.pemfile = "/opt/etc/lighttpd/ssl/lighttpd.pem"
    #ssl.pemfile = "/opt/etc/lighttpd/ssl/fullchain.pem"
    #ssl.pemfile = "/opt/etc/lighttpd/ssl/chain.pem"
    # путь к закрытому ключу файла PEM (обязательно, если закрытый ключ отсутствует в файле ssl.pemfile) (начиная с версии 1.4.53)
    #ssl.private-key = "/opt/etc/lighttpd/ssl/privkey.pem"

    # шифры
    ssl.use-sslv2 = "disable"
    #ssl.protocols = "TLSv1.2 TLSv1.3"
    #ssl.cipher-list = "HIGH:!aNULL:!MD5:!RC4:!3DES"
    #ssl.prefer-server-ciphers = "enable"
    #ssl.cipher-list = "TLSv1.2:TLSv1.3 HIGH:!SSLv2:!RC4:!aNULL:!eNULL:!3DES:@STRENGTH"
    ssl.openssl.ssl-conf-cmd = ("CipherString" => "DEFAULT:@SECLEVEL=2")

    # Дополнительные защитные настройки
    ssl.session-cache = "shared:SSL:10m"
    ssl.session-timeout = "10m"
    ssl.stapling = "enable"
    ssl.stapling-verify = "enable"

    # Смотреть https://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_SSL

    # Дополнительные заголовки
    setenv.add-header = (
        "Strict-Transport-Security" => "max-age=31536000; includeSubDomains",
        "X-Content-Type-Options" => "nosniff",
        "X-Frame-Options" => "SAMEORIGIN"
    )
}

#$HTTP["scheme"] == "test.diyit.ru:8057" {
    # Перенаправление HTTP на HTTPS
#    url.redirect = (".*" => "https://%0/$0")
#}

$HTTP["host"] =~ "test.diyit.ru" {
    server.document-root = "/opt/share/www/"  # Укажите правильный путь к корневой директории
}

# historical/исторический; сохранен для обеспечения совместимости; должен был быть отключен по умолчанию
index-file.names            = ( "index.php", "index.html",
                                "index.htm", "default.htm",
                              )

static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )

include "/opt/etc/lighttpd/mime.conf"
include "/opt/etc/lighttpd/conf.d/*.conf"

### Настройки
# настройки, как правило, следует размещать в отдельных файлах, таких как
#   /opt/etc/lighttpd/conf.d/00_vars.conf    # переопределять переменные для conf.d/*.conf
#   /opt/etc/lighttpd/conf.d/zz_custom.conf  # переопределить другие conf.d/*.conf настройки

# 403 - denied  включить листинг каталогов, чтобы веб-сервер показывал список всех файлов, включенных в каждую веб-папку.
# server.dir-listing = "enable"

количество слов: 890
Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 914
Стаж: 5 лет 11 месяцев
Откуда: Вологодская область
Благодарил (а): 1 раз
Поблагодарили: 42 раза
Контактная информация:

Установка на Wi Fi маршрутизатор Keenetic ОС Entware lighttpd Веб сервер

Сообщение Артём Мамзиков »

Код: Выделить всё

mcedit /opt/etc/lighttpd/conf.d/10-redirect.conf

Код: Выделить всё

server.modules += ( "mod_redirect" )

Код: Выделить всё

mcedit /opt/etc/lighttpd/conf.d/20-auth.conf

Код: Выделить всё

##
##  Модуль аутентификации
## -----------------------
##
## Смотреть https://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_ModAuth
## для получения дополнительной информации и множества других опций.
##

server.modules += ( "mod_auth" )

#server.modules += ( "mod_authn_file" )
#auth.backend                 = "plain"
#auth.backend.plain.userfile  = conf_dir + "/lighttpd.user"

auth.backend = "htpasswd"
auth.backend.htpasswd.userfile = "/opt/etc/lighttpd/.htpasswd"
auth.require = ( "/" =>
    (
        "method" => "basic",
        "realm" => "Пожалуйста, введите свой пароль.",
         "require" => "valid-user" 
    )
                )

#server.modules += ( "mod_authn_ldap" )
#auth.backend               = "ldap"
#auth.backend.ldap.hostname = "localhost"
#auth.backend.ldap.base-dn  = "dc=my-domain,dc=com"
#auth.backend.ldap.filter   = "(uid=$)"

#auth.require               = ( "/server-status" =>
#                               (
#                                 "method"  => "digest",
#                                 "realm"   => "Server Status",
#                                 "require" => "valid-user"
#                               ),
#                             )

##
## кэшируйте пароли/ сохраняйте их в памяти, чтобы уменьшить нагрузку на серверную часть
## максимальный срок действия указан в секундах
## кэш проверяется на истечение каждые 8 секунд, поэтому фактический срок действия
## кэширование может быть на 8 секунд дольше, чем заданный максимальный срок действия.
## по умолчанию: неактивно (кэширование отсутствует)/inactive (no caching)
##
#auth.cache = ("max-age" => "600")

##
#######################################################################

Код: Выделить всё

mcedit /opt/etc/lighttpd/conf.d/20-authn_file.conf

Код: Выделить всё

server.modules += ( "mod_authn_file" )

Код: Выделить всё

mcedit /opt/etc/lighttpd/conf.d/20-authn_ldap.conf

Код: Выделить всё

server.modules += ( "mod_authn_ldap" )

Код: Выделить всё

mcedit /opt/etc/lighttpd/conf.d/30-access.conf

Код: Выделить всё

server.modules += ( "mod_access" )

Код: Выделить всё

mcedit /opt/etc/lighttpd/conf.d/30-accesslog.conf

Код: Выделить всё

server.modules += ( "mod_accesslog" )

Код: Выделить всё

mcedit /opt/etc/lighttpd/conf.d/30-alias.conf

Код: Выделить всё

server.modules += ( "mod_alias" )

Код: Выделить всё

mcedit /opt/etc/lighttpd/conf.d/30-cgi.conf

Код: Выделить всё

#######################################################################
##
##  CGI модуль
## ---------------
##
## Смотреть https://redmine.lighttpd.net/projects/lighttpd/wiki/docs_modcgi
##
server.modules += ( "mod_cgi" )

##
## Обычная старая обработка CGI
##
## Для PHP не забудьте установить cgi.fix_pathinfo = 1 в поле php.ini.
##
cgi.assign                 = ( ".pl"  => "/opt/bin/perl",
                               ".cgi" => "/opt/bin/perl",
                               ".rb"  => "/opt/bin/ruby",
                               ".erb" => "/opt/bin/eruby",
                               ".py"  => "/opt/bin/python" )

##
## чтобы получить старое поведение cgi-bin apache
##
## Примечание: убедитесь, что mod_alias загружен, если вы раскомментируете
## следующую строку. (см. modules.conf)
##
#alias.url += ( "/cgi-bin" => server_root + "/cgi-bin" )
#$HTTP["url"] =~ "^/cgi-bin" {
#   cgi.assign = ( "" => "" )
#}

##
## требуется разрешение на выполнение (+x) файлов для CGI-скриптов
## по умолчанию: отключено/disable
##
#cgi.execute-x-only = "enable"

##
## обработать X-Sendfile (если он есть) из ответа CGI
## https://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_ModFastCGI#X-Sendfile
## по умолчанию: отключено/disable
##
#cgi.x-sendfile = "enable"
#cgi.x-sendfile-docroot = ( server_root + "/html", server_root + "/static" )

##
## Оптимизация ответа на локальное перенаправление
## https://www.ietf.org/rfc/rfc3875 6.2.2 Оптимизация ответа на локальное перенаправление
## по умолчанию: отключено/disable
##
#cgi.local-redir = "enable"

##
## разрешить обновление, например, обновление: websocket
## по умолчанию: отключено/disable
##
#cgi.upgrade = "enable"

##
#######################################################################

Код: Выделить всё

mcedit /opt/etc/lighttpd/conf.d/30-deflate.conf

Код: Выделить всё

#######################################################################
##
##  Сжатие выходного сигнала
## --------------------
##
## Смотрите https://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_ModDeflate
##
server.modules += ( "mod_deflate" )

##
## миметипы для сжатия
##
#deflate.mimetypes = ("text/")       # префикс соответствует всем ответам типа text/* Content
#deflate.mimetypes = ("text/html", "text/plain", "text/css", "text/javascript", "text/xml")
deflate.mimetypes         = ("text/plain", "text/html")

##
## разрешенные кодировки
##
deflate.allowed-encodings = ("brotli", "gzip", "deflate")

##
## необязательный
##

##
## расположение файлового кэша
## lighttpd может хранить сжатые файлы в кэше по пути и etag и может обслуживать
## сжатые файлы из кэша вместо повторного сжатия файлов при каждом запросе
##
#deflate.cache-dir = "/path/to/compress/cache"
#deflate.cache-dir = cache_dir + "/compress"

##
## максимальный размер ответа (в КБ), который будет сжат
## по умолчанию: 131072 # измеряется в КБ (131072 означает 128 МБ)
## При указании значения 0 в качестве ограничения используется внутреннее значение по умолчанию, равное 128 МБ
##
#deflate.max-compress-size = 131072
#deflate.max-compress-size = 0

##
## минимальный размер ответа, который будет сжат
## по умолчанию: 256
##
#deflate.min-compress-size = 256     # измеряется в байтах

##
## предел средней загрузки системы, при превышении которого mod_deflate временно отключается
##
#deflate.max-loadavg = "3.50"

##
## настраиваемые алгоритмы сжатия
## (часто лучше оставить значения по умолчанию)
##
#deflate.compression-level = 9
#deflate.output-buffer-size = 8192
#deflate.work-block-size = 2048

##
#######################################################################

Код: Выделить всё

mcedit /opt/etc/lighttpd/conf.d/30-evhost.conf

Код: Выделить всё

#######################################################################
##
##  Расширенный виртуальный хостинг
## -------------------------- 
##
## Смотреть https://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_ModEVhost
##
server.modules += ( "mod_evhost" )

##
## определите шаблон для поиска URL-адреса хоста
## %% => % sign /знак
## %0 => domain name + tld /доменное имя + tld
## %1 => tld
## %2 => domain name without tld /доменное имя без tld
## %3 => subdomain 1 name /имя поддомена 1
## %4 => subdomain 2 name /имя поддомена 2
## %_ => full domain name /полное доменное имя
## %{M.N} => single character at 1-indexed position N in the domain segment %M (e.g %0 - %9)
## %{M.N} => один символ в позиции N с индексом 1 в доменном сегменте %M (например, %0 - %9)
##
evhost.path-pattern        = vhosts_dir + "/%3/htdocs/"

##
#######################################################################

Код: Выделить всё

mcedit /opt/etc/lighttpd/conf.d/30-expire.conf

Код: Выделить всё

#######################################################################
##
##  Модуль с истекшим сроком действия / Expire
## --------------- 
##
## Смотреть https://redmine.lighttpd.net/projects/lighttpd/wiki/docs_modexpire
##
server.modules += ( "mod_expire" )

##
## назначает срок действия для всех файлов, расположенных ниже указанного пути. То
## определение времени состоит из:
##
##    <доступ|модификация> <количество> <годы|месяцы|дни|часы|минуты|секунды>
##    <access|modification> <number> <years|months|days|hours|minutes|seconds>
##    
#expire.url = (
#  "/buggy/"  => "access 2 hours",
#  "/images/" => "access plus 1 seconds 2 minutes"
#)

##
#######################################################################

Код: Выделить всё

mcedit /opt/etc/lighttpd/conf.d/30-extforward.conf

Код: Выделить всё

server.modules += ( "mod_extforward" )

Код: Выделить всё

mcedit /opt/etc/lighttpd/conf.d/30-fastcgi.conf

Код: Выделить всё

#######################################################################
##
##  Модуль FastCGI
## --------------- 
##
## Смотреть https://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_ModFastCGI
##
server.modules += ( "mod_fastcgi" )

# /opt/var/run/php8-fpm.sock
# /opt/var/run/php8-fcgi.sock
# Права на паку run  drwxrwxr-x root root
#php8-fastcgi  127.0.0.1:9003

fastcgi.server = ( ".php" =>
                   ( "localhost" =>
                       (
                          "socket" => "/opt/var/run/php8-fcgi.sock" ,
                          "bin-path" => "/opt/bin/php-cgi" ,
                          "max-procs" => 1 ,
                          "broken-scriptfilename" => "enable" ,
                          "bin-environment" => ( "PHP_FCGI_CHILDREN" => "1" ,
                          "PHP_FCGI_MAX_REQUESTS" => "1000" )
                       ) ) )

##
## Пример PHP
## Для PHP не забудьте установить cgi.fix_pathinfo = 1 в php.ini.
##
## Количество php-процессов, которые вы получите, можно легко рассчитать:
##
## num-procs = max-procs * ( 1 + PHP_FCGI_CHILDREN )
##
## для примера php-num-procs это означает, что вы получите 17*5 = 85 php
## процессы. вам всегда должно быть нужно это большое число для вашего самого
## оживленных сайтов И если у вас много оперативной памяти. :)
##
#fastcgi.server = ( ".php" =>
#                   ( "php-local" =>
#                     (
#                       "socket" => socket_dir + "/php-fastcgi-1.socket",
#                       "bin-path" => server_root + "/cgi-bin/php5",
#                       "max-procs" => 1,
#                       "broken-scriptfilename" => "enable",
#                     ),
#                     "php-tcp" =>
#                     (
#                       "host" => "127.0.0.1",
#                       "port" => 9999,
#                       "check-local" => "disable",
#                       "broken-scriptfilename" => "enable",
#                     ),
#                     "php-num-procs" =>


#                     (
#                       "socket" => socket_dir + "/php-fastcgi-2.socket",
#                       "bin-path" => server_root + "/cgi-bin/php5",
#                       "bin-environment" => (
#                         "PHP_FCGI_CHILDREN" => "16",
#                         "PHP_FCGI_MAX_REQUESTS" => "10000",
#                       ),
#                       "max-procs" => 5,
#                       "broken-scriptfilename" => "enable",
#                     ),
#                   ),
#                 )

##
## Пример Ruby  На Rails
##
## Обычно вы запускаете только одно приложение Rails на одном vhost.
##
#$HTTP["host"] == "rails1.example.com" {
#  server.document-root  = server_root + "/rails/someapp/public"
#  server.error-handler-404 = "/dispatch.fcgi"
#  fastcgi.server = ( ".fcgi" =>
#    ("someapp" =>
#      ( "socket" => socket_dir + "/someapp-fcgi.socket",
#        "bin-path" => server_root + "/rails/someapp/public/dispatch.fcgi",
#        "bin-environment" => (
#              "RAILS_ENV" => "production",
#              "TMP" => home_dir + "/rails/someapp",
#        ),
#      )
#    )
#  )
#}

##
## Другой пример с несколькими приложениями rails на одном vhost.
##
## https://blog.lighttpd.net/articles/2005/11/23/lighttpd-1-4-8-and-multiple-rails-apps
##
#$HTTP["host"] == "rails2.example.com" {
#  $HTTP["url"] =~ "^/someapp1" {
#    server.document-root  = server_root + "/rails/someapp1/public"
#    server.error-handler-404 = "/dispatch.fcgi"
#    fastcgi.server = ( ".fcgi" =>
#      ("someapp1" =>
#        ( "socket" => socket_dir + "/someapp1-fcgi.socket",
#          "bin-path" => server_root + "/rails/someapp1/public/dispatch.fcgi",
#          "bin-environment" => (
#                "RAILS_ENV" => "production",
#                "TMP" => home_dir + "/rails/someapp1",
#          ),
#          "strip-request-uri" => "/someapp1/"
#        )
#      )
#    )
#  }
#
#  $HTTP["url"] =~ "^/someapp2" {
#    server.document-root  = server_root + "/rails/someapp2/public"
#    server.error-handler-404 = "/dispatch.fcgi"
#    fastcgi.server = ( ".fcgi" =>
#      ("someapp2" =>
#        ( "socket" => socket_dir + "/someapp2-fcgi.socket",
#          "bin-path" => server_root + "/rails/someapp2/public/dispatch.fcgi",
#          "bin-environment" => (
#                "RAILS_ENV" => "production",
#                "TMP" => home_dir + "/rails/someapp2",
#          ),
#          "strip-request-uri" => "/someapp2/"
#        )
#      )
#    )
#  }
#}

## chrooted/рутированный веб-сервер + внешний PHP
##
## $ spawn-fcgi -f /usr/bin/php-cgi -p 2000 -a 127.0.0.1 -C 8
##
## веб-сервер, подключенный к /srv/www/
## php, работающий за пределами chroot
#
#fastcgi.server = ( 
#  ".php" => (( 
#    "host" => "127.0.0.1",
#    "port" => "2000",
#    "docroot" => "/srv/www/servers/www.example.org/htdocs/"
#  )))
#
#server.chroot = "/srv/www"
#server.document-root = "/servers/www.example.org/htdocs/"
#

##
#######################################################################

Код: Выделить всё

mcedit /opt/etc/lighttpd/conf.d/30-magnet.conf

Код: Выделить всё

#######################################################################
##
## Магнитный модуль
## --------------- 
##
## Смотреть https://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_ModMagnet
##
server.modules += ( "mod_magnet" )

##
##
##
#magnet.attract-raw-url-to = (  )

##
## в качестве примера этого смотрите документы mod_magnet и
## http://pixel.global-banlist.de./
##
#magnet.attract-physical-path-to = ( conf_dir + "/cleanurl.lua" )

##
#######################################################################

Код: Выделить всё

mcedit /opt/etc/lighttpd/conf.d/30-maxminddb.conf

Код: Выделить всё

server.modules += ( "mod_maxminddb" )

Код: Выделить всё

mcedit /opt/etc/lighttpd/conf.d/30-openssl.conf

Код: Выделить всё

server.modules += ( "mod_openssl" )

Код: Выделить всё

mcedit /opt/etc/lighttpd/conf.d/30-proxy.conf

Код: Выделить всё

#######################################################################
##
##  Прокси-модуль
## ---------------
##
## Смотреть https://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_ModProxy
##
server.modules += ( "mod_proxy" )

##
## значение от 0 до 65535 для настройки уровня отладки в модуле Proxy.
## В настоящее время используются только значения 0 и 1. Используйте 1, чтобы включить некоторые параметры отладки, а 0 - чтобы
## отключить их.
##
#proxy.debug = 1

##
## может быть одним из "хэшированных"/'hash', "циклических"/'round-robin' или "справедливых"/'fair' (по умолчанию).
## might be one of 'hash', 'round-robin' or 'fair' (default).
##
#proxy.balance = "fair"

##
## Обрабатывать все запросы jsp через 192.168.0.101
##
#proxy.server = ( ".jsp" =>
#                 ( "tomcat" =>
#                   (
#                     "host" => "192.168.0.101",
#                     "port" => 80
#                   )
#                 )
#               )

##
#######################################################################

Код: Выделить всё

mcedit /opt/etc/lighttpd/conf.d/30-rewrite.conf

Код: Выделить всё

server.modules += ( "mod_rewrite" )

Код: Выделить всё

mcedit /opt/etc/lighttpd/conf.d/30-rrdtool.conf

Код: Выделить всё

#######################################################################
##
##  Инструментальный модуль RRD
## -----------------
##
## Смотреть https://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_ModRRDTool
##
server.modules += ( "mod_rrdtool" )

##
## Путь к двоичному файлу rrdtool.
##
rrdtool.binary             = "/opt/bin/rrdtool"

##
## Путь к базе данных rrdtool. Вы можете переопределить это в условных обозначениях.
##
rrdtool.db-name            = "/opt/var/lib/lighttpd/lighttpd.rrd"

##
#######################################################################

Код: Выделить всё

mcedit /opt/etc/lighttpd/conf.d/30-scgi.conf

Код: Выделить всё

#######################################################################
##
##  Модуль SCGI
## ---------------
##
## Смотреть https://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_ModSCGI
##
server.modules += ( "mod_scgi" )

##
## Пример Ruby На Rails
##
## Обычно вы запускаете только одно приложение Rails на одном vhost.
##
#$HTTP["host"] == "rails1.example.com" {
#  server.document-root  = server_root + "/rails/someapp/public"
#  server.error-handler-404 = "/dispatch.fcgi"
#  scgi.server = ( ".scgi" =>
#    ("scgi-someapp" =>
#      ( "socket" => socket_dir + "/someapp-scgi.socket",
#        "bin-path" => server_root + "/rails/someapp/public/dispatch.scgi",
#        "bin-environment" => (
#              "RAILS_ENV" => "production",
#              "TMP" => home_dir + "/rails/someapp",
#        ),
#      )
#    )
#  )
#}

##
## 2-й пример Ruby На Rails
##
## На этот раз мы запускаем приложение rails через scgi_rails извне.
##
#$HTTP["host"] == "rails2.example.com" {
#  server.document-root  = server_root + "/rails/someapp/public"
#  server.error-handler-404 = "/dispatch.scgi"
#  scgi.server = ( ".scgi" =>
#    ( "scgi-tcp" =>
#      (
#        "host" => "127.0.0.1",
#        "port" => 9998,
#        "check-local" => "disable",
#      )
#    )
#  )
#}

##
#######################################################################

Код: Выделить всё

mcedit /opt/etc/lighttpd/conf.d/30-setenv.conf

Код: Выделить всё

server.modules += ( "mod_setenv" )

Код: Выделить всё

mcedit /opt/etc/lighttpd/conf.d/30-simple_vhost.conf

Код: Выделить всё

#######################################################################
##
##  Простой виртуальный хостинг
## ------------------------
##
## Смотреть https://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_ModSimpleVhost
##
server.modules += ( "mod_simple_vhost" )

##  Если вы хотите использовать виртуальный хостинг на основе имен, добавьте следующие три параметра и загрузите
##  mod_simple_vhost
##
## document-root =
##   virtual-server-root + virtual-server-default-host + virtual-server-docroot
## or
##   virtual-server-root + http-host + virtual-server-docroot
##
simple-vhost.server-root   = vhosts_dir + "/"
simple-vhost.default-host  = "default.example.com"
simple-vhost.document-root = "/opt/share/www/"

##
## Напечатайте несколько ошибок для поиска root файла документа
##
#simple-vhost.debug = 1

##
#######################################################################

Код: Выделить всё

mcedit /opt/etc/lighttpd/conf.d/30-sockproxy.conf

Код: Выделить всё

server.modules += ( "mod_sockproxy" )

Код: Выделить всё

mcedit /opt/etc/lighttpd/conf.d/30-ssi.conf

Код: Выделить всё

#######################################################################
##
##  Серверная часть включает в себя
## -----------------------
##
## Смотреть https://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_ModSSI
##
server.modules += ( "mod_ssi" )

##
## какие расширения следует запускать через mod_ssi.
##
ssi.extension              = ( ".shtml" )

##
## Директива ssi.conditional-requests влияет только на запросы
## обрабатывается модулем SSI и позволяет определять, какие страницы SSI
## которые можно кэшировать, а которые нет. Эта директива может быть включена
## или отключен глобально и/или в любом контексте.
##
## Как следует из названия этой директивы, условные запросы будут
## обрабатываться соответствующим образом для любой страницы SSI, для которой включена директива
## В частности, будут отправлены заголовки "ETag" и "Last-Modified"
## И наоборот, эти заголовки не будут отправлены для
## страниц, для которых директива отключена.
##
## Для директивы должно быть установлено значение "enable" ТОЛЬКО для запросов, которые
## известно, что он генерирует кэшируемые документы. Страница SSI, которая только
## включает содержимое из других статических файлов и/или использует SSI
## команды, которые дают предсказуемый результат (например, команда echo
## для переменной LAST_MODIFIED), вероятно, можно кэшировать.
##
## Для всех остальных документов директива должна быть установлена на "disable",
## то есть для SSI-страниц, которые зависят от непредсказуемого ввода, такого как
## в качестве выходных данных (но не ограничиваясь ими) команд ssi exec, данные из
## заголовки запроса клиента (отличные от URI запроса) или любые другие
## другие непостоянные входные данные, такие как текущая дата или время,
## пользовательский агент клиента и т.д...
##
## По умолчанию отключено.
##
## Для получения более подробного объяснения условных запросов, пожалуйста, смотрите
## Протокол передачи гипертекста (HTTP/1.1): Условные запросы
##
## https://tools.ietf.org/html/rfc7232
##
#ssi.conditional-requests = "enable"

##
#######################################################################

Код: Выделить всё

mcedit /opt/etc/lighttpd/conf.d/30-status.conf

Код: Выделить всё

#######################################################################
##
##  Модуль состояния
## ---------------
##
## Смотреть https://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_ModStatus
##
server.modules += ( "mod_status" )

$HTTP["remoteip"] == "127.0.0.0/8" {
##
## настройте URL-адреса для различных частей модуля.
##
  status.status-url          = "/server-status"
  status.config-url          = "/server-config"
  status.statistics-url      = "/server-statistics"
##
## добавьте JavaScript, который позволяет выполнять сортировку на стороне клиента для обзора подключения
##
  status.enable-sort         = "enable"
}
##
#######################################################################

Код: Выделить всё

mcedit /opt/etc/lighttpd/conf.d/30-userdir.conf

Код: Выделить всё

#######################################################################
##
##  Пользовательский модуль Каталога
## ----------------
##
## Смотреть https://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_ModUserDir
##
server.modules += ( "mod_userdir" )

##
## обычно должно быть установлено значение "public_html", чтобы использовать ~/public_html/ в качестве
## root каталога документа
## По умолчанию: пусто (корневым каталогом документа является домашний каталог)
##
userdir.path = "public_html"

##
## Если установлено, не проверяйте /etc/passwd для домашней папки
## По умолчанию: пусто
#userdir.basepath = server_root + "/users/"

##
## список имен пользователей, которые не могут использовать эту функцию
## По умолчанию: пусто (все пользователи могут использовать эту функцию)
##
#userdir.exclude-user = ( "root", "postmaster" )

##
## если задано, только пользователи из этого списка могут использовать эту функцию
## По умолчанию: пусто (ее могут использовать все пользователи)
##
#userdir.include-user = ("user1", "user2")

##
#######################################################################

Код: Выделить всё

mcedit /opt/etc/lighttpd/conf.d/30-vhostdb.conf

Код: Выделить всё

server.modules += ( "mod_vhostdb" )

Код: Выделить всё

mcedit /opt/etc/lighttpd/conf.d/30-webdav.conf

Код: Выделить всё

#######################################################################
##
##  Модуль WebDAV
## ---------------
##
## Смотреть https://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_ModWebDAV
##
server.modules += ( "mod_webdav" )

$HTTP["url"] =~ "^/dav($|/)" {
#$HTTP["url"] =~ "^/dav(?:/|$)" {
 # alias.url = ("/dav" => "/path/to/dav")
 # alias.url = ("/dav" => "/opt/share/www/dav")

  dir-listing.activate = "enable"

  ##
  ## включите webdav для этого местоположения
  ##
  webdav.activate = "enable"

  ##
  ## По умолчанию URL webdav доступен для записи.
  ## Раскомментируйте следующую строку, если хотите, чтобы она была доступна только для чтения.
  ##
  #webdav.is-readonly = "enable" # "disable" (по умолчанию)

  ##
  ## База данных SQLite для свойств WebDAV и блокировок WebDAV
  ##
  webdav.sqlite-db-name = home_dir + "/webdav.db"
  #webdav.sqlite-db-name = "/opt/var/lib/lighttpd/webdav.db"
  #webdav.sqlite-db-name = "/var/db/lighttpd/webdav.sqlite"

  ##
  ## Регистрируйте тела XML-запросов для отладки
  ##
  #webdav.log-xml = "disable"

  ##
  ## дополнительные настройки mod_webdav
  ## Смотрите онлайн-документацию:
  ##   https://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_ModWebDAV
  ##
  #webdav.opts = ( ... )
}
  else $HTTP["url"] == "/dav" {
  url.redirect = ("" => "/dav/")
  url.redirect-code = 308
}
##
#######################################################################

Код: Выделить всё

mcedit /opt/etc/lighttpd/conf.d/30-wstunnel.conf

Код: Выделить всё

server.modules += ( "mod_wstunnel" )

количество слов: 1674
Ответить Вложения 1 Пред. темаСлед. тема

Вернуться в «Keenetic»