Lighttpd как средство подружить Java и PHP

В мире существует и активно используется десятка полтора веб-серверов. Среди них lighttpd занимает особое место. Ну, во-первых, он используется по прямому назначению. Этим малюткой не брезгуют такие монстры, как The Pirate Bay, FreeBSD.org и даже, если не ошибаюсь, YouTube. В раздаче статического содержимого веб-страниц он может превзойти даже Apache, не уступая при этом в безопасности и гибкости настроек. Однако основная прелесть lighttpd не в этом, а в возможности интеграции содержимого различных веб-серверов, написанных, возможно, на разных языках и базирующихся на разных платформах. Конечно, для этого используется еще и nginx, но о нем пусть расскажет кто-нибудь другой.


Допустим, есть два сервера: один написан на Java, другой на PHP. Так, собственно, и произошло в моем случае, когда пришлось влиться в проект, уже разработанный на языке, осваивать который я буду разве что под страхом смертной казни. Как «подружить» столь разношерстное программное обеспечение? А вот как раз с помошью lighttpd. Он умеет собирать http-запросы и распределять их по разным серверам. Кроме того, он может быть прокси-сервером для защищенных соединений, что немаловажно в специфических ситуациях, когда специализированные веб-приложения не удается заставить работать по https (могу привести несколько примеров, но речь не о них). Ну и, конечно, через этот сервер целесообразно раздавать статику, оставив исполнение сложных алгоритмов более развитым, но медлительным «собратьям».

Вот несложный конфиг этого сервера, практически не требующий пояснений. В данном случае весь веб-трафик с порта 80 передается на 8080, где его поджидает сложный сервер, написанный на Java. На 8080 перенаправляется и трафик, приходящий на 443 порт по защищенному соединению, попутно расшифровываясь.

server.document-root = "/home/yababay/.3f-lab/_felix/web"

server.username  = "apache"
server.groupname = "apache"
server.port = 3000
server.modules = ("mod_proxy")

mimetype.assign = (
	".html" => "text/html",
	".js"   => "text/javascript",
	".css"  => "text/css",
	".png"  => "image/png",
	".jpg"  => "image/jpeg",
	".jpeg" => "image/jpeg",
	".gif"  => "image/gif"
)

index-file.names = ( "index.html" )

$SERVER["socket"] == "127.0.0.1:80" {
 proxy.server = ("" => (("host" => "127.0.0.1", "port" => 8080)))
}

$SERVER["socket"] == "127.0.0.1:443" {
 ssl.engine  = "enable"
 ssl.pemfile = "lighthttpd.pem"
 proxy.server = ("" => (("host" => "127.0.0.1", "port" => 8080)))
}


Запускается сервер lighttpd вообще незатейливо:

sudo lighttpd -D -f lighthttpd.conf

Можно перенаправлять трафик на домены любого уровня, разрешать или запрещать доступ к тем или иным веб-ресурсам, регулировать доступ к ним с помощью OpenLDAP и много-много других фишек. Отличное средство интеграции!
  • +7
  • 02 июля 2010, 23:32
  • yababay

Комментарии (2)

RSS свернуть / развернуть
+
0
Отлично !
avatar

Markony

  • 03 июля 2010, 07:43
+
0
Это примерно тоже самое что nginx — он тоже зачастую работает как кеширующий прокси
avatar

Sergei_T

  • 03 июля 2010, 18:27

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.