• nielsl
  • Registratie: Januari 2006
  • Laatst online: 21-01 15:47
Beste Allemaal,

omdat je wilt blijven oefenen met linux dacht ik bij mezelf "laat ik lighttpd eens installeren en configuren". De situatie is als volgt. Ik heb een ML110G5 met daarop een aantal VM's die bij elkaar in hetzelfde vlan hangen. Zo heb ik een www server aangemaakt en heb ik ook een development server aangemaakt. Nu kun je natuurlijk met proxy's mappen die op de devserver staan laten weergeven op de www server. In apache is het vrij simpel en dit zou het ook moeten zijn in lighttpd, in ieder geval, volgens deze site:
http://www.packtpub.com/a...n-from-apache-to-lighttpd (zie het onderdeel excursion: mod_proxy)

Zo gezegd, zo gedaan, alleen krijg ik mn proxy niet aan de praat, ik heb namelijk op mn dev server roundcube draaien, die wil ik namelijk gaan testen zodat hij op termijn het toch ietwat oude maar toch vertrouwde squirrelmail kan vervangen (je wilt grafisch toch ook een beetje met je tijd meegaan). Volgens de tutorial is het heel erg simpel om een proxy toe te voegen, voeg simpelweg mod_proxy toe aan de lijst van server modules en voeg daaronder ergens de proxy.server toe naar dit voorbeeld

code:
1
2
3
proxy.server = (
"/somepath" => ( host => "127.0.0.1", port => "8080" )
)


wat in mijn geval dus wordt:
code:
1
2
3
proxy.server = (
"/roundcube" => ( host => "10.0.0.105", port => "80" )
)


Als ik dan lighttpd probeer te restarten krijg ik de volgende error
Stopping web server: lighttpd.
Starting web server: lighttpdUndefined config variable: var.host
2009-01-05 21:10:11: (configfile.c.827) source: /etc/lighttpd/lighttpd.conf line: 186 pos: 34 parser failed somehow near here: =>
failed!
Ik heb me kapot gegooled, ik kan niet vinden waar ik dan de variabele var.host zou kunne definieren of dat ik ergens een module moet aanzetten. Ik draai VM ware ESXi met allemaal debian etch VM's. Mogelijk kan iemand me op weg helpen, ik zie het niet

Thx
Niels

edit
misschien zit ik hier in het verkeerde sub topic maar dit lijkt me nou niet echt een PNS topic, met een ML110G5 ben je immers bij lange na nog geen professional ;)

[ Voor 4% gewijzigd door nielsl op 05-01-2009 21:14 ]


  • BastiaanN
  • Registratie: September 2003
  • Niet online
$HTTP["host"] == "www.example.org" {
proxy.balance = "hash"
proxy.server = ( "" => ( ( "host" => "10.0.0.10" ),
( "host" => "10.0.0.11" ),
( "host" => "10.0.0.12" ),
( "host" => "10.0.0.13" ),
( "host" => "10.0.0.14" ),
( "host" => "10.0.0.15" ),
( "host" => "10.0.0.16" ),
( "host" => "10.0.0.17" ) ) )
}
Dit voorbeeld heb ik van de documentatie van lighttpd geplukt, dat hij valt over de => lijkt er op te duiden dat het geheel buiten een array staat. Heb je het wel toegevoegd aan de array $HTTP['host'] ? (zoja heeft de entry boven die van jou wel een komma aan het einde? )

Bron: http://redmine.lighttpd.net/wiki/lighttpd/Docs:ModProxy

Strava | :-( + ┌(^0^)┘= :-)


  • thegve
  • Registratie: Februari 2004
  • Laatst online: 25-12-2025
Ik ben nog even aan het zoeken voor je, ik heb net eventjes lighttpd geinstalleerd op mijn debian systeem. Maar in /etc/lighttpd/conf-available/10-proxy.conf staat een voorbeeldje.
Ik zou beginnen met (gezien het debian principe "by default werkt alles")
code:
1
2
3
4
5
flappie:~# cd /etc/lighttpd/conf-enabled/
flappie:/etc/lighttpd/conf-enabled# ln -s ../conf-available/10-proxy.conf 
flappie:/etc/lighttpd/conf-enabled# /etc/init.d/lighttpd restart
 * Stopping web server lighttpd                                                                                                                                                                                                      [ ok ] 
 * Starting web server lighttpd                                                                                                                                                                                                      [ ok ]

Dit is op een schoon geinstalleerde debian machine. Ik hoop trouwens dat je een backup van /etc/lighttpd hebt gemaakt, dat is altijd makkelijk bij het testen....

  • thegve
  • Registratie: Februari 2004
  • Laatst online: 25-12-2025
En het voorbeeld uncommenten en een beetje aanpassen werkt bij mij.
Alle requests voor localhost/*.php (getest met localhost/index.php) op mijn laptop komen bij mijn server uit.
Ik ben er al wel achter gekomen dat hij niet aan resolven doet, dus je moet er even een "hard" ip inzetten.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
server.modules   += ( "mod_proxy" )

## Balance algorithm, possible values are: "hash", "round-robin" or "fair" (default)
# proxy.balance     = "hash" 


## Redirect all queries to files ending with ".php" to 192.168.0.101:80 
proxy.server     = ( ".php" =>
                     ( 
                       ( "host" => "192.168.14.1",
                         "port" => 80
                       )
                     )
                    )

[ Voor 45% gewijzigd door thegve op 05-01-2009 21:28 ]


  • nielsl
  • Registratie: Januari 2006
  • Laatst online: 21-01 15:47
wauw, thanks voor het duwtje :) ik ga kijken :)

  • nielsl
  • Registratie: Januari 2006
  • Laatst online: 21-01 15:47
ben wel een paar stapjes verder maar ben nu tegen een volgende foutmelding aangelopen. Ik heb de volgende configuratie neergezet

code:
1
2
3
$HTTP["host"] == "pad.naar.mn.server" {
proxy.server = ("/roundcube"=>("host" => "10.0.0.105", "port" => "80" ))
}


Maar ik krijg de volgende foutmelding
Stopping web server: lighttpd.
Starting web server: lighttpd.
ssr-www01:/etc/lighttpd/conf-enabled# 2009-01-05 21:53:28: (mod_proxy.c.283) unexpected type for key: proxy.server [host](string)
2009-01-05 21:53:28: (server.c.862) Configuration of plugins failed. Going down.
kortom, de configuratie laadt eerst goed, maar daarna knalt ie er toch uit, als ik een gedeelte van deze configuratie comment dan krijg ik een parse error (logisch, hij mist data) maar blijkbaar schrijf ik iets verkeerd op, ik kan in het document van BastiaanN en in de conf-available die bij mn install komen echter niet zo snel zien wat ik dan fout doe, ik heb mn haakjes en accolades geteld, spelfouten lijken me ook stug... nog suggesties?

  • BastiaanN
  • Registratie: September 2003
  • Niet online
$HTTP["host"] == "pad.naar.mn.server" {
proxy.server = ("/roundcube"=> ((
"host" => "10.0.0.105",
"port" => "80" ))
)
}
probeer hem eens zo?

Let op de twee haakjes na de => en de twee haakjes achter de poort, zo staat hij ook in het voorbeeld :)

[ Voor 24% gewijzigd door BastiaanN op 05-01-2009 22:03 ]

Strava | :-( + ┌(^0^)┘= :-)


  • nielsl
  • Registratie: Januari 2006
  • Laatst online: 21-01 15:47
verrek, je hebt gelijk :) compleet overheen gekeken, hij piepte nog om de haakjes die om het portnummer staan, maar die heb ik verwijderd, dat wil zeggen dat die de uiteindelijke configuratie is geworden :)

code:
1
2
3
4
5
6
$HTTP["host"] == "pad.naar.mn.server" {
proxy.server = ("/roundcube"=> ((
"host" => "10.0.0.105",
"port" => 80 ))
)
}


toch wel jammer dat het beestje geen namen kan resolven zoals apache dat kan, moet nu toch weer extra werk verrichten door een static ip toe te kennen in mn dhcp poule

edit
port 80 mag natuurlijk worden weggelaten, dat is natuurlijk de default port

[ Voor 7% gewijzigd door nielsl op 05-01-2009 22:17 ]


  • thegve
  • Registratie: Februari 2004
  • Laatst online: 25-12-2025
Ik zou sowieso een beetje zenuwachtig worden van via DHCP geconfigureerde ip adressen, in ieder geval in echte "productie". Als ze DNS namen zouden resolven zouden ze zichzelf daarmee automatisch gevoelig maken voor DNS-spoofing cq gevoeligheden.

edit...
Gezien er in Debian's voorbeeld een "balance algorithm" optie voor de proxy details staan, ga ik er vanuit dat als je het (in pseudo) als volgt configureert
[iets met proxy] ( '.php' (
( proxy details 1, zoals je ze dus nu al hebt),
( proxy details 2)
) )
dat je dan load balancing hebt. (Dit noemen ze dan volgens mij officieel "poor man's load balancing").

En nog bedankt voor de vraag, dit ga ik in mijn achterhoofd houden ivm een project waar ik nu aan werk :).

[ Voor 51% gewijzigd door thegve op 06-01-2009 00:24 ]


  • Demo
  • Registratie: Juni 2000
  • Laatst online: 26-01 09:09

Demo

Probleemschietende Tovenaar

Dat klopt helemaal thegve, zie deze documentatie voor een korte (maar naar mijn mening wel duidelijke) uitleg en de verschillen tussen de algorithmen.

Unix doesn't prevent a user from doing stupid things, because that would necessarily prevent them from doing brilliant things.
while true ; do echo -n "bla" ; sleep 1 ; done

Pagina: 1