Это простейший WEB сервер написанный на языке Lua.
Сервер умеет все, что нужно на один раз.
- Отдавать файлы по запросу в браузере
- Исполнять Lua скрипты, а результат отдавать браузеру. Просто создайте файл с расширением
.lua
в директории программы и введите путь в адресной строке. Файл будет выполнен, а результат отправится в браузер. - Налету заменять имя запрашиваемого файла.
- HTTPS. Режим включается, если указан
--sslcert
и--sslkey
аргументы и установленаluasec
библиотека.
- *
luasocket
luasec
Удостовертесь, что у вас открыт порт 8080. Он установлен по умолчанию.
Поместите файлы в одну папку с сервером и запустите http_server.lua
.
Возможные пргументы:
--host=0.0.0.0 прослушиваемый сервером хост
--port=8080 порт, который будет прослушивать серве
--root=<dir> путь к корневой папке файлов сервера
--rules=<file> путь к файлу правил
--sslcert=<file> путь к файлу ssl сертификата
--sslkey=<file> путь к файлу ключа от сертификата
--sslca=<file> путь к файлу корневого сертификата
Все аргументы не обязательны, у некоторых указанные значения - это значения по умолчани.
Сервер поддерживает шифрованное соединение. Что бы добиться работы в таком режиме, нужно указать
пути к сертификатам и ключу. Сертификат сервера может содержать и сертификат ЦС, в там случает
--sslca
можно не указывать.
Для полноценной работы браузера с защищенным сервером, его нужно перенаправлять на нужный порт.
Что бы сделать это можно использовать sslrule.lua
в качестве аргумента --rules
для сервера
перенаправляющего HTTP на HTTPS. Этот сервер, соответственно, должен в проде прослушивать 80 порт,
а сервер с сертификатами - 443.
Пример запуска сайта с HTTPS. Оба процесса должны быть запущены паралельно:
http_server --root=/var/http/ --rules=/etc/luahttp/rules.lua --port=443 --sslcert=/var/certs/server.pem --sslkey=/var/verts/server.key
http_server --rules=/etc/luahttp/sslrule.lua --port=80
Это запустит 2 сервера, один на 443 порту основной, а второй на 80 для переадресации.
По умолчанию в sslrule.lua
описано правило переадресации на https://<host>:<port>
.
Вы можете изменить это.