Forum Turris
Fórum Turris Nápověda

Milí majitelé routerů Turris,

toto fórum bylo 9. 12. 2016 zmrazeno a nahrazeno naším novým Turris fórem. Ještě chvíli bude dostupné k prohlížení, ale již zde není možné přispívat. Více informací naleznete v oznámení o uzavření fóra.


Dear Turris routers users,

this forum has been frozen on Dec 9th, 2016 and replaced by our new Turris forum. It will be read-only accessible for some time after. For more information, read the announcement about closing the forum.

Nahoru Téma Majitelé routerů / Technická podpora / web přes ligttpd
- - Od meny Dne 2016-02-02 21:53 Upraveno 2016-02-02 22:27
Potřeboval bych postrčit správným směrem v nastavení lighttpd. Pozor toto není fukční!

předsatava:
vlastní web na portu 85 přístupný z vnější sítě. Funkční luci a foris na vnitřní LAN.

Do /etc/lighttpd/conf.d/ jsem přidal vlastní *.conf soubor s nastavením pravidla pro stránky, které jsou dostupné zvenku přes port 85.
$SERVER["socket"] == ":85"
{}

/etc/lighttpd/conf.d/foris.conf      zapodmínkováno a funguje
$SERVER["socket"] == ":80"
{}

/etc/lighttpd/conf.d/luci.conf     zapodmínkováno a nefunguje
$SERVER["socket"] == ":80"
{}
končí s chybou:
/usr/lib/lua/luci/dispatcher.lua:211: /etc/config/luci seems to be corrupt, unable to find section 'main'
stack traceback:
  [C]: in function 'assert'
  /usr/lib/lua/luci/dispatcher.lua:211: in function 'dispatch'
  /usr/lib/lua/luci/dispatcher.lua:195: in function </usr/lib/lua/luci/dispatcher.lua:194>

Chci se vyhnout editaci skriptu pro foris. A taky bych to chtěl nastavit tak aby se to při updatech nerozbíjelo.
Je vůbec nějaká schůdná ceta jak to realizovat přes lighttpd?

Neměl byste někdo funkční návod na nastavení?
Nadřazený - - Od Jiří Kunc Dne 2016-02-03 18:23
Já jsem šel cestou nejmenšího odporu, jen jsem si  nastavil /etc/lighttpd/lighttpd.conf parametr server.port = 5001

Nyní mám tedy konfiguraci dostupnou buď na https://IP_turrisu nebo na http://IP_turrisu:5001

Dále jsem si doinstaloval apache, ten běží na standardním portu 80, takže svůj web mám dostupný http://IP_turrisu

Do pravidel firewallu je nutné přidat např:
config rule
option target 'ACCEPT'
option scr 'wan'
option proto 'tcp'
option dest_port '80'
option name 'Apache'

...a web je pak dostupný i z internetu

Výhoda tohoto řešení je, že při případném update lighttpd stačí zeditovat jeden jediný řádek.
Nadřazený - Od meny Dne 2016-02-03 22:57 Hlasů 1
Chtěl jsem se vyhnout instalaci něčeho nového.

Nakonec jsem si řekl že to zkusím. Překvapivě jsem to nakonfiguroval celkem bez problémů dle tohoto návodu:
https://www.turris.cz/forum/topic_show.pl?tid=454

Tímto děkui uživateli  Daniel M. za návod
Nadřazený - - Od saky (>) Dne 2016-02-03 18:39
Já šel cestou NGINX...

Ono při přístupu zvenčí stejně těžko ovlivníte počet přístupů (roboti) a nejsem si jistý, jestli je na to lighthttpd vhodné.. Na lokální administraci samo bohatě postačuje, ale na serveru bych to taky nechtěl :-)
Nadřazený - - Od Ondřej Caletka (>>>) Dne 2016-02-04 12:22
Lighttpd je plnohodnotný web server, na internetu běžně používaný.
Nadřazený - Od saky (>) Dne 2016-02-04 12:54 Upraveno 2016-02-04 13:00
To samozřejmě je, ale na jakoukoliv zátěž se nehodí, viz třeba http://wiki.dreamhost.com/Web_Server_Performance_Comparison

Výkon lighttpd je tam mizerný, že jde celkem snadno prokázat i na malém PHP webu s pár statickými soubory použitím třeba Apache Benchmark. Když jsem jej kdysi zkoušel, byl na jakékoliv smysluplné využití nedostatečný a dokonce jsem se na vyšší počet rps dostal i s webserverem integrovaným v NodeJS.

Apache je nenažraný moloch a obloukem se mu vyhýbám, ale NGINX má nároky skoro srovnatelné s lighthttpd a nesrovnatelně vyšší výkon a to i když se předřadí jen jako proxy na statický obsah :)

EDIT: Dle využití v praxi předpokládám, že k podobným závěrům došla i většina provozovatelů, viz třeba http://news.netcraft.com/archives/2015/03/19/march-2015-web-server-survey.html, nebo http://w3techs.com/technologies/overview/web_server/all, kde lighthttpd zabírá 0,1%, což je na úrovni statistické chyby.

Náskok Apache moc nechápu, vysvětluji si to ale snadným použitím méně zkušenými, ale drtivá většina smyslplných projektů jede na Nginxu
- - Od kosi123 Dne 2016-02-06 00:07
Také bych uvítal nějaký návod pro provozování vlastního webu.

Zatím chápu, že když si do souboru /etc/config/foris přidám:
config config 'server'
        option scriptname '/foris'

Tak budu mít volnou ip svého routeru, kde si mohu provozovat svůj web, ale netuším, kam si mám nahrát soubory pro provozování tohoto webu? Ještě tak nějak tuším, že bych to umístění měl asi definovat skriptem v /etc/lighttpd/conf.d/, ale vůbec netuším, jak by ten skript měl vypadat. Když jsem pro inspiraci koukal na skripty pro foris a luci, které jsou v tomto umístění, tak z nich nejsem vůbec moudrý.
Nadřazený - - Od Ondřej Caletka (>>>) Dne 2016-02-06 15:23
Odpovědi na vaše otázky najdete v dokumentaci lighttpd. Konkrétně vás bude zajímat proměnná server.documentroot, která bude nejspíš mířit buď do /www2. Mělo by být bezpečné ji změnit na cokoli jiného, pokud se nepletu, adresář www2 už se v Turrisu pro nic nepoužívá.
Nadřazený - - Od kosi123 Dne 2016-02-07 00:30
Děkuji za odpověď, opravdu stačilo změnit v souboru "/etc/lighttpd/lighttpd.conf" jeden řádek

měnil jsem řádek: "server.document-root        = "/www""
změnil cestou na externí disk připojený k turrisu přes usb: "server.document-root        = "/mnt/nas/Turris/www"

Čekal jsem, že mi z toho důvodu přestane fungovat foris a luci, jelikož jsou nějaké soubory právě v původní složce "/www". Nevím jak je to možné, ale nastalo se tak, vše stále běží jak má.

Dále jsem si rozchodil php5 a upravil konfiguraci unboundu, abych si nastavil vlastní doménové jméno pro ip turrisu.
Teď jsem nadšený, že všechno perfektně běží.

Děkuji za pomoc
Nadřazený - - Od kosi123 Dne 2016-02-07 13:09
Ok, tak jsem zjistil, že mi php5 často vyhazuje chyby, které jsem např. na endoře nedostával. Například:

"Warning: date(): Invalid date.timezone value 'Europe/Berlin', we selected the timezone 'UTC' for now. in /mnt/nas/Turris/www/php/date.php on line 27
Fatal error: date(): Timezone database is corrupt - this should *never* happen! in /mnt/nas/Turris/www/php/date.php on line 27"

"Fatal error: Call to undefined function mb_send_mail() in /mnt/nas/Turris/www/php/mailform.php on line 34"

"Fatal error: Call to undefined function mb_internal_encoding() in /mnt/nas/Turris/www/php/test.php on line 20"

Snažil jsem se řešení nalézt na internetu, ale nic nepomáhá.
Neví někdo, jak by bylo možné chyby vyřešit?

Děkuji
Nadřazený - Od rene.kliment (>) Dne 2016-02-07 14:14
Tak od boku: opkg update; opkg install php5-mod-mbstring zoneinfo-europe a ujistit se v konfiguráku, že jsou příslušné rozšíření naloadované.
Nadřazený - Od Ondřej Caletka (>>>) Dne 2016-02-08 12:13

> Čekal jsem, že mi z toho důvodu přestane fungovat foris a luci, jelikož jsou nějaké soubory právě v původní složce "/www". Nevím jak je to možné, ale nastalo se tak, vše stále běží jak má.


Jak LuCI, tak i Foris jsou definovány jako aliasy, takže na obsahu vlastního document rootu vůbec nezáleží.
- - Od Pospa Dne 2016-07-12 22:14
Ahoj. Navážu. Podařilo se už někomu zprovoznit vlastní web aby nerozbil foris a luci? Oboje mi ted jede pouze na https a rád bych na http (port 80) rozjel vlastní web. Poradíte prosím někdo? Díky
Nadřazený - - Od Ondřej Caletka (>>>) Dne 2016-07-13 08:58
Pokud foris překořeníte na jinou cestu než /, neměl by být problém provozovat jakýkoli další web. Stačí přidat do /etc/config/foris:

config config 'server'
        option scriptname '/foris'


Pak už si jednoduše v /etc/lighttpd/conf.d/ založte nový soubor s vlastní konfigurací a Foris ani LuCI se vám nebudou plést.
Nadřazený - - Od Pospa Dne 2016-07-13 19:07
Rád bych foris provozoval i nadále v rootu, ale jen na portu 443 pres https. Po http bych chtel vlastní web. Neco ve smyslu:

  $SERVER["socket"] == ":80" {
    server.document-root = "<cesta na foris>"
  }

  $SERVER["socket"] == ":443" {
    server.document-root = "<cesta na muj web>"
  }

bohuzel tohle mi nezafunguje a hlasi chybu parsovani konfigurace. :-(
Nadřazený - Od Ondřej Caletka (>>>) Dne 2016-07-13 20:56
Takhle to bohužel fungovat nebude. Skript pro generování konfigurace Forisu má jen jednu proměnnou a tou je právě ta kořenová URL. Takže bez zásahu do generátoru konfigurace (a takový zásah budete muset opakovat po každém updatu) něco takového nastavit nelze.

Jde o to, že Foris nemá žádnou cestu ve smyslu webrootu ale nastavuje v konfiguraci Lighttpd FastCGI bránu pro všechna URL s výjimkou static|cgi-bin|luci-static|plugins.

Teoreticky můžete zkusit uzavřít vygenerovanou konfiguraci Forisu do nějakého podmíněného bloku editací souboru /etc/lighttpd/conf.d/foris.conf:

$SERVER["socket"] == "[::]:443" {
include_shell "sh /usr/share/foris/lighttpd-dynamic-conf"
}


Mimochodem, jak jste docílil toho, že Foris neposlouchá na portu 80? To není výchozí nastavení, ne?
Nadřazený - Od hybner Dne 2016-07-13 21:52
Zdravim nebylo by nahodou resenim to, ze by se nastavil foris na /foris a do www adresare pro https by se dalo presmerovani na /foris? Tj v php napr. pres header funkci.
Nahoru Téma Majitelé routerů / Technická podpora / web přes ligttpd

Powered by mwForum 2.29.3 © 1999-2013 Markus Wichitill