Za pomocą formularza kontaktowego dostałem pytanie dotyczące 2 niedawno opublikowanych wpisów, i mimo, że wolałbym, by było zadane w formie komentarza pod jednym z wpisów, to wydaje się na tyle ciekawe, że postanowiłem zrobić wyjątek i odpowiem na przesłane pytanie, choć w formie ogólnodostępnego wpisu – bo podejrzewam, że ta informacja może przydać się nie tylko pytającemu…
Spis treści w artykule
Nginx Snippets i różne PHP Pools dla stron
W przypadku, gdy na swoim serwerze macie więcej stron (i korzystacie z webserwera Nginx) zapewne wiecie, że wspólne pliki konfiguracyjne (Nginx Snippets) znacznie potrafią uprościć wprowadzanie hurtowych/globalnych zmian w konfiguracji.
Gdy macie wiele stron, to oprócz wygody zapewne ważne dla Was jest bezpieczeństwo, a więc bardzo prawdopodobne, że korzystacie z różnych gniazd PHP (PHP Pools w PHP-FPM w Apache2/Nginx) dla poszczególnych stron.
Połączyć ogień z wodą
I tu może pojawić się problem – bo Nginx Snippets dzięki wspólnym plikom konfiguracyjnym pozwala znacznie uprościć konfigurację, ułatwić wprowadzanie zmian, ale z kolei PHP Pools wymaga indywidualnej konfiguracji usługi PHP dla każdej strony/domeny, gdyż musimy podać tam dedykowaną dla danej strony nazwę gniazda PHP.
Bo konfiguracja ZMIENNA jest
Rozwiązaniem są zmienne, które możemy zdefiniować w konfiguracji danego vHosta w webserwerze Nginx, a tym samym możemy wykorzystać taką zmienną do zdefiniowania gniazda PHP, przy wykorzystaniu wspólnej konfiguracji dla wszystkich stron korzystających z indywidualnych gniazd PHP Pools.
Zaczynamy od zdefiniowania zmiennej w konfiguracji wybranego vHosta – na potrzeby tego poradnika zmienna to „$pool_name”, a jej wartość to „webinsider”, czyli element wyróżniający wybrane gniazdo PHP (/var/run/php5-fpm-webinsider.sock):
set $pool_name webinsider;
Następnie wczytujemy plik wspólnej konfiguracji:
include snippets/php-pools.conf;
A sam plik „php-pools.conf”, w którym znajdzie się konfiguracja dla PHP-FPM może wyglądać np. tak:
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm-$pool_name.sock;
fastcgi_index index.php;
include fastcgi.conf;
}
Dzięki temu plik „php-pools.conf” możecie ustawić jako wspólny dla wielu różnych stron korzystających z indywidualnych gniazd PHP, a dzięki modyfikacji wartości zmiennej „$pool_name” sprawicie, że dla danej strony będzie wykorzystywane wybrane gniazdo PHP (PHP Pools).
Oczywiście to tylko przykład wykorzystania zmiennych, a możliwości jest dużo więcej…
- Home Assistant 2024.11, czyli „sekcje” domyślnym widokiem z opcją migracji, WebRTC oraz wirtualna kamera - 1970-01-01
- Black Friday w ZUS, czyli jest jeszcze kilka dni, by złożyć wniosek RWS i skorzystać z wakacji składkowych płacąc ZUS za grudzień 2024 - 1970-01-01
- Wakacje składkowe ZUS a zawieszenie działalności gospodarczej, czyli uważaj, bo być może nie będziesz mógł skorzystać (w 2024) - 1970-01-01