Skocz do zawartości
Zaloguj się, aby obserwować  
draker

Dwa webservery - jeden serwer

Polecane posty

Witam,

 

Potrzebuję mieć uruchomione dwa webserwery na jednym serwerze o jednym adresie IP. Obecnie posiadam Litespeeda jako główny webserver, ale często mam problem z wyczerpującym się limitem req/sec, dlatego potrzebuję uruchomić Lighttpd dla jednej strony, która wykonuje najwięcej zapytań. Szczerze mówiąc, nie wiem, jak mam się za to zabrać. Zainstalowałem lighttpd, ustawiłem jego port na inny (81), dodałem vhosta, zresetowałem i koniec. W bindzie raczej nie ustawię przekierowania tej domeny na port :81, a nie ma sensu, by użytkownicy widzieli w adresie domena.pl:81. Wydaje mi się, że w takiej sytuacji konieczne jest ustawienie jakiegoś przekierowania w Litespeedzie, tyle, że nie wiem, jak to można zrobić. Opcjonalnie może jest jakaś inna metoda, by móc przekierowywać użytkowników z domena.pl na domena.pl:81, tyle, żeby ten port nie był widoczny?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Z ciekawości, czemu nie nginx?

 

lighttpd przy dużym obciążeniu potrafi po prostu nie działać, dlatego nie polecam.

 

Co do samego pytania to źle trochę kombinujesz. Mógłbyś ustawić reverse proxy na dany port przy pomocy np. nginxa, ale to nie ma sensu, bo mógłbyś po prostu użyć tego serwera zamiast litespeed i lighttpd.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

W Litespeedzie możesz utworzyć kontekst / jako Reverse-Proxy.

Tylko po kiego grzyba, skoro owe żądania i tak będą się wliczały do limitowanych pod względem licencji requestów?

 

Rozwiązania są dwa:

> dokup dodatkowy adres IP i zbinduj do niego lighttpd

> zamień kolejność - na froncie lighttpd robiący za proxy do litespeeda

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Szczerze mówiąc, z nginxa jeszcze nigdy nie korzystałem, a Litespeed poza tym limitem requestów w darmowej wersji jest webserwerem idealnym: przy ponad trzech milionach requestów dziennie strony na Joomli i własnym CMS'ie zużywa 200MB RAMu, a load nie przekracza 0,5 na dosyć leciwym serwerze, podczas gdy Apache zdychał gdy miałem 500 000 requestów dziennie. Raczej zamienię Lighttpd na nginx'a, bo mam ogromny .htaccess i konwersja tego będzie katorgą...

 

Zrobię tak jak radzicie - nginx jako główny webserwer, robiący proxy dla litespeeda. Jak będę miał jakiś problem z konfiguracją, to napiszę. Dzięki za pomoc!

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Możesz pokusić się o taką konfigurację, aby statyczne bloki (jakieś obrazki) nginx cache'ował. Wtedy jeszcze mocniej odciążysz Litespeeda smile.png Ewentualnie jeszcze jedna opcja, ale ona wymaga tyci więcej zabawy.

Zainstaluj drugą/trzecią/entą instancję lsws, a nginxa użyj jako load-balancer między nimi ;)

Edytowano przez kafi (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Szczerze mówiąc, z nginxa jeszcze nigdy nie korzystałem, a Litespeed poza tym limitem requestów w darmowej wersji jest webserwerem idealnym: przy ponad trzech milionach requestów dziennie strony na Joomli i własnym CMS'ie zużywa 200MB RAMu, a load nie przekracza 0,5 na dosyć leciwym serwerze,

 

Nginx robi mi kilkaset milionów req dziennie bez problemu na i7. Polecam go

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Zrobię tak jak radzicie - nginx jako główny webserwer, robiący proxy dla litespeeda. Jak będę miał jakiś problem z konfiguracją, to napiszę. Dzięki za pomoc!

 

A może po prostu Varnish przed Litespeedem?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość patrys
A może po prostu Varnish przed Litespeedem?

Albo squid, przy sprawnej konfiguracji zniknie spora ilość requestów do serwera webowego.

A gdy się bawić z 2 serwerami to haproxy i statykę puścić z backendu uruchomionego na nginx, a dynamiczne php z litespeed'a.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

 

A może po prostu Varnish przed Litespeedem?

 

Varnish ma większy sens, jeśli system i tak cachuje w pamięci odczytywane pliki?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Napisz swoje wyniki tutaj. Jestem ciekawy czy litespeed odczyta poprawnie prawdziwe ip odwiedzającego przekazane przez nginx.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Narazie nie miałem czasu na to wszystko i tylko Litespeed to kontroluje, w weekend zajmę się tym na poważnie.

 

Przy okazji: ma ktoś może doświadczenie z webserwerem Cherokee? Zaisntalowałem to u siebie, konfiguracja jest prostsza niż Litespeeda, vhosty dodaje się błyskawicznie przez opcję Clone, jedynie .htaccess to prawdziwy wrzód na dupie, bo trzeba każdą regułę wpisywać na nowo w panelu, co trochę mi zajmie, gdy mój htaccess ma 500 linijek. Jaka jest wydajność tego webserwera?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Moim zdaniem cherokee zostało zapomniane... teraz bardziej nginx.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Napisz swoje wyniki tutaj. Jestem ciekawy czy litespeed odczyta poprawnie prawdziwe ip odwiedzającego przekazane przez nginx.

Z tym nie ma problemu. Wystarczy tylko przekazać IP w proxy i litespeed będzie widział.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

No właśnie chyba developerzy zapomnieli o Cherokee, bo ostatnia wersja pochodzi z października 2011, forum i wiele działów supportu nie działają, twitter i ich facebook też nie, więc przez to nie mogłem przenieść htaccess. Dziś spróbuję coś zrobić z nginxem...

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Nie widzę sensu w zaśmiecaniu forum i tworzenia nowego tematu, więc spytam tutaj.

 

nginx zainstalowany, skonfigurowany dla kilku witryn, ale pozostała jeszcze jedna, która ma przeogromny .htaccess. Konwersja jego ręcznie zajęłaby trochę czasu, więc wrzuciłem to do online convertera. Niestety, coś nie działa.

 

server {
	listen 80;
	server_name gta.net.pl;
	server_name_in_redirect off;

	access_log /var/log/nginx/localhost.access_log;
	error_log /var/log/nginx/localhost.error_log;

	root /home/gtasite/web;


	index index.php index.html index.htm default.html default.htm;
	location ~* /(images|cache|media|logs|tmp)/.*\.(php|pl|py|jsp|asp|sh|cgi)$ {
			return 403;
			error_page 403 /403_error.html;
	}

location / {

 rewrite ^/([^,]+),archiwumshoutbox.html$ /index.php?act=archiwumshoutbox&p=$1 break;
 rewrite ^/([^,]+),ref.html$ /index.php?act=ref&id=$1 break;
 rewrite ^/([^,]+),galeria.html$ /index.php?act=galeria&id=$1 break;
 rewrite ^/([^,]+),([^,]+),galeria.html$ /index.php?act=galeria&id=$1&p=$2 break;
 rewrite ^/([^,]+),galeria,gta.html$ /index.php?act=galeria&id=$1 break;
 rewrite ^/([^,]+),([^,]+),galeria,gta.html$ /index.php?act=galeria&id=$1&p=$2 break;
 rewrite ^/([^,]+),profile.html$ /index.php?act=publicprofile&id=$1 break;
 rewrite ^/([^,]+),profile,gta.html$ /index.php?act=publicprofile&id=$1 break;
 rewrite ^/([^,]+),wyniki.html$ /index.php?act=wyniki&id=$1 break;
 rewrite ^/([^,]+),gbook.html$ /index.php?act=gbook&p=$1 break;
 rewrite ^/([^,]+),deletepm.html$ /index.php?act=pmlist&do=deletepm&id=$1 break;
 rewrite ^/([^,]+),pmdisplay.html$ /index.php?act=pmdisplay&id=$1 break;
 rewrite ^/([^,]+),artykuly.html$ /index.php?act=catartykuly&id=$1 break;
 rewrite ^/([^,]+),artykuly,gta.html$ /index.php?act=catartykuly&id=$1 break;
 rewrite ^/([^,]+),([^,]+),artykuly.html$ /index.php?act=catartykuly&id=$1&p=$2 break;
 rewrite ^/([^,]+),([^,]+),artykuly,gta.html$ /index.php?act=catartykuly&id=$1&p=$2 break;
 rewrite ^/([^,]+),artykul.html$ /index.php?act=artykul&id=$1 break;
 rewrite ^/([^,]+),artykul,gta.html$ /index.php?act=artykul&id=$1 break;
 rewrite ^/([^,]+),news.html$ /index.php?act=news&id=$1 break;
 rewrite ^/([^,]+),news,gta.html$ /index.php?act=news&id=$1 break;
 rewrite ^/([^,]+),([^,]+),news.html$ /index.php?act=news&id=$1&p=$2 break;

 rewrite ^/([^,]+),news,gta.html$ /index.php?act=news&id=$1 break;
 rewrite ^/([^,]+),([^,]+),news.html$ /index.php?act=news&id=$1&p=$2 break;
 rewrite ^/([^,]+),([^,]+),news,gta.html$ /index.php?act=news&id=$1&p=$2 break;
 rewrite ^/([^,]+),downloadcomments.html$ /index.php?act=downloadcomments&id=$1 break;
 rewrite ^/([^,]+),downloadcomments,gta.html$ /index.php?act=downloadcomments&id=$1 break;
 rewrite ^/([^,]+),([^,]+),downloadcomments.html$ /index.php?act=downloadcomments&id=$1&p=$2 break;
 rewrite ^/([^,]+),([^,]+),downloadcomments,gta.html$ /index.php?act=downloadcomments&id=$1&p=$2 break;
 rewrite ^/([^,]+),artykulcomments.html$ /index.php?act=artykulcomments&id=$1 break;
 rewrite ^/([^,]+),artykulcomments,gta.html$ /index.php?act=artykulcomments&id=$1 break;
 rewrite ^/([^,]+),([^,]+),artykulcomments.html$ /index.php?act=artykulcomments&id=$1&p=$2 break;
 rewrite ^/([^,]+),([^,]+),artykulcomments,gta.html$ /index.php?act=artykulcomments&id=$1&p=$2 break;
 rewrite ^/([^,]+),newsy.html$ /index.php?p=$1 break;
 rewrite ^/([^,]+),newsy,gta.html$ /index.php?p=$1 break;
 rewrite ^/([^,]+),downloadcat.html$ /index.php?act=downloadcat&id=$1 break;
 rewrite ^/([^,]+),downloadcat,gta.html$ /index.php?act=downloadcat&id=$1 break;
 rewrite ^/([^,]+),download.html$ /index.php?act=dl&id=$1 break;
 rewrite ^/([^,]+),download,gta.html$ /index.php?act=dl&id=$1 break;
 rewrite ^/([^,]+),([^,]+),downloadcat.html$ /index.php?act=downloadcat&id=$1&p=$2&order=time&ord=DESC break;
 rewrite ^/([^,]+),([^,]+),downloadcat,gta.html$ /index.php?act=downloadcat&id=$1&p=$2&order=time&ord=DESC break;
 rewrite ^/([^,]+),([^,]+),([^,]+),([^,]+),downloadcat.html$ /index.php?act=downloadcat&id=$1&p=$2&order=$3&ord=$4 break;
 rewrite ^/([^,]+),([^,]+),([^,]+),([^,]+),downloadcat,gta.html$ /index.php?act=downloadcat&id=$1&p=$2&order=$3&ord=$4 break;


}


	location ~ .*.php$ {
		include /etc/nginx/fastcgi_params;
		fastcgi_pass  127.0.0.1:9000;
		fastcgi_index index.php;
		include fastcgi_params;
		fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

Wchodząc przykładowo w link http://gta.net.pl/12,galeria,gta.html - następuje przekierowanie do index.php, ale pokazuje kod tego pliku. Co jest źle?

Edytowano przez draker (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Jak narazie jest OK. Trochę są problemy z htaccessem, bo niektóre funkcje strony coś nie chcą działać (np. http://gta.net.pl/13,galeria.html) i nie mam pojęcia, jak to naprawić, ale kiedyś może się uda. Korzystam z php-fqm, bo php-fcgi nie dawał sobie rady na standardowej konfiguracji (ciągle błędy 502 Bad Gateway). Zużycie CPU i RAM praktycznie takie same jak w Litespeedzie (load średnio 0,2 w godzinach szczytu). Niestety jedyny problem jest taki, że coś zużywa mnóstwo miejsca na HDD - w konfiguracji nginx / php-fpm mam ustawione zapisywanie logów na /home, a nawet w nocy co chwile coś się zapisuje i usuwa na partycji systemowej (http://modbase.pl/munin/localdomain/localhost.localdomain/df.html - te duze wahania zaczęły się od instalacji nginx'a, teraz usunąłem sporo niepotrzebnych śmieci z partycji innej nż /home, ale nadal coś się usuwa i zapisuje, nie wiem co).

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Też mam ostatnio ten problem i prawdopodobnie będę musiał ustawić php-fpm tak, żeby restartował się co jakiś czas (może nie restart, a reload). Zauważyłem, że często mam duże zużycie dysku w df'ie, a rzeczywiście nie ma takiego zajęcia. Tak jakby php-fpm usuwał pliki, ale dalej trzymał je jako utworzone - jakby nie zamykał do końca. Po reloadzie php-fpm wszystko wraca do normy.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się

Zaloguj się, aby obserwować  

×