Konfigurowanie Nginx dla Laravel na Ubuntu i Debian

Konfigurowanie Nginx dla Laravel na Ubuntu i Debian

Laravel to popularna framework aplikacji PHP używany do opracowywania solidnych i dynamicznych aplikacji internetowych. Jeśli chodzi o wdrożenie aplikacji Laravel, Nginx jest popularnym wyborem serwera WWW ze względu na jej szybkość, stabilność i skalowalność. Konfigurowanie Nginx dla Laravel jest ważne dla wdrożeń produkcyjnych.

W tym samouczku zapewnimy kompleksowy przewodnik na temat konfigurowania Nginx dla aplikacji Laravel.

Krok 1: Zainstaluj Nginx

Zanim będziesz mógł skonfigurować Nginx dla aplikacji Laravel, musisz najpierw zainstalować Nginx na serwerze. Możesz zainstalować Nginx na swoim serwerze za pomocą następującego polecenia:

Sudo apt-get Aktualizacja  sudo apt-get instaluj nginx  

Krok 2: Zainstaluj PHP

Aby uruchomić aplikację Laravel na Nginx, musisz również zainstalować PHP, który jest językiem skryptowym, z którym Laravel jest zbudowany. Możesz zainstalować PHP i jego zależności, uruchamiając następujące polecenie:

sudo apt-get instaluj php php-fpm php-mysql 

To polecenie instaluje PHP, PHP FastcGi Process Manager i rozszerzenie MySQL dla PHP.

Po zakończeniu instalacji musisz skonfigurować PHP do pracy z Nginx. Możesz to zrobić, edytując plik konfiguracyjny PHP-FPM:

sudo nano/etc/php/8.1/fpm/basen.D/www.conf 

W tym pliku musisz zaktualizować następujące ustawienia:

User = www-data grupa = www-data słuchanie =/run/php/php8.1-fpm.skarpetka
123User = www-DataGroup = www-datalisten =/run/php/php8.1-fpm.skarpetka

Ustawienia te zapewniają, że PHP działa jako ten sam użytkownik i grupa, co Nginx i słucha w prawidłowym gnieździe.

Zapisz i zamknij plik po zakończeniu, a następnie uruchom ponownie PHP-FPM, aby zastosować zmiany:

sudo systemctl restart php8.1-fpm 

Z zainstalowanym i skonfigurowanym PHP, Twój serwer Nginx jest teraz gotowy do obsługi aplikacji Laravel.

Krok 3: Utwórz blok serwera Nginx

Następnym krokiem jest utworzenie bloku serwera Nginx, który służy do zdefiniowania ustawień konfiguracji dla określonej strony internetowej lub aplikacji. Aby utworzyć blok serwera dla aplikacji Laravel, utwórz nowy plik w katalogu/etc/nginx/witryn, w następujący sposób:

sudo nano/etc/nginx/witryny-dostępny/laravel 

W tym pliku dodaj następujące ustawienia konfiguracji:

serwer Słuchaj 80; Przykład_nazowy Server_name.com; root/var/www/laravel/public; indeks indeksu.php; lokalizacja / try_files $ URI $ URI / / Index.php?$ query_string; Lokalizacja ~ \.php $ try_files $ uri = 404; fastcgi_pass unix:/run/php/php8.1-fpm.skarpetka; indeks fastcgi_index.php; fastcgi_param script_filename $ dokument_root $ fastcgi_script_name; Dołącz fastcgi_params;
12345678910111213141516171819serwer Słuchaj 80; Przykład_nazowy Server_name.com; root/var/www/laravel/public; indeks indeksu.php; lokalizacja / try_files $ URI $ URI / / Index.php?$ query_string; Lokalizacja ~ \.php $ try_files $ uri = 404; fastcgi_pass unix:/run/php/php8.1-fpm.skarpetka; indeks fastcgi_index.php; fastcgi_param script_filename $ dokument_root $ fastcgi_script_name; Dołącz fastcgi_params;

W tej konfiguracji słuchamy na porcie 80, definiując nazwę serwera jako przykład.i ustawienie katalogu głównego dla aplikacji Laravel. Określamy również plik indeksu i definiujemy blok lokalizacji dla aplikacji Laravel. Ponadto definiujemy blok lokalizacji dla plików PHP i określamy parametry FASTCGI.

Krok 4: Włącz blok serwera Nginx

Po utworzeniu bloku serwera musisz go włączyć. Aby to zrobić, utwórz link symboliczny z pliku/etc/nginx/Sites-dostępny/laravel do katalogu/etc/nginx/witryny, w następujący sposób:

sudo ln -s/etc/nginx/sites-dostępny/laravel/etc/nginx/witryny-obsługujący/ 

Przed ponownym uruchomieniem Nginx należy przetestować konfigurację, aby upewnić się, że nie ma błędów składniowych. Możesz przetestować konfigurację za pomocą następującego polecenia:

sudo nginx -t 

Jeśli nie ma błędów składniowych, możesz ponownie uruchomić Nginx za pomocą następującego polecenia:

sudo systemctl restart nginx 

Krok 5: Skonfiguruj SSL/TLS

Aby zabezpieczyć aplikację LaraVel, należy skonfigurować SSL/TLS. Aby to zrobić, musisz uzyskać certyfikat SSL/TLS od zaufanego urzędu certyfikacyjnego (CA) i zainstalować go na serwerze. Po uzyskaniu certyfikatu możesz skonfigurować SSL/TLS, dodając następujące ustawienia konfiguracji do bloku serwera:

Posłuchaj 443 SSL; SSL_Certificate/Path/to/Your/Certificate.pem; ssl_certificate_key/ścieżka/do/Twój/private.klucz;
1234Posłuchaj 443 SSL; SSL_Certificate/Path/to/Your/Certificate.pem; ssl_certificate_key/ścieżka/do/your/private.klucz;

Powinieneś wymienić certyfikat/ścieżka/do/.PEM i/ścieżka/do/Twoje/prywatne.Klucz odpowiednio ze ścieżkami do certyfikatu SSL/TLS i klucza prywatnego.

Krok 6: Optymalizuj wydajność

Aby zoptymalizować wydajność aplikacji Laravel, możesz skonfigurować buforowanie Nginx. Buforowanie może pomóc zmniejszyć ładowanie serwera i poprawić czas ładowania strony. Aby włączyć buforowanie, możesz dodać następujące ustawienia konfiguracji do bloku serwera:

Włączanie buforowania

Buforowanie może pomóc poprawić wydajność aplikacji Laravel poprzez zmniejszenie ładowania serwera i poprawę czasów ładowania strony. Aby umożliwić buforowanie w Nginx, możesz dodać następującą konfigurację do bloku serwera:

Lokalizacja ~* \.(jpg | jpeg | png | gif | iCo | css | js) $ wygasa 1y; add_header Cache-Control „Public, No-Transform”;
1234Lokalizacja ~* \.(jpg | jpeg | png | gif | iCo | css | js) $ wygasa 1y; add_header Cache-Control „Public, No-Transform”;

Ta konfiguracja informuje Nginx, aby buforuje obrazy, CSS i JavaScript przez jeden rok i wysłać „publiczny” nagłówek sterowania pamięcią podręczną.

Włączanie kompresji GZIP

Włączenie kompresji GZIP może również pomóc poprawić wydajność aplikacji Laravel, zmniejszając rozmiar plików przesyłanych między serwerem a klientem. Aby włączyć kompresję GZIP w Nginx, możesz dodać następującą konfigurację do bloku serwera:

gzip on; GZIP_TYPES Text/Plain Text/CSS Application/JSON Application/JavaScript Text/XML Application/XML Application/XML+RSS Text/JavaScript;
12gzip on; gzip_types Text/Plain Text/CSS Application/Json Application/JavaScript Text/XML Application/XML Application/XML+RSS Text/JavaScript;

Ta konfiguracja mówi Nginx, aby włączyła kompresję GZIP dla typów plików tekstowych.

Dostosowanie procesów i połączeń pracowników

Na koniec możesz dostosować procesy i połączenia pracowników, aby zoptymalizować wydajność aplikacji Laravel na Nginx. Może to pomóc zapewnić, że Twój serwer może obsłużyć dużą liczbę żądań, nie przytłoczając. Aby dostosować procesy i połączenia pracowników, możesz dodać następującą konfigurację do bloku HTTP w nginx.Plik CONF:

robotnik_processes auto; robotnik_connections 1024;
12robotnik_processes auto; robotnika_connections 1024;

Ta konfiguracja informuje Nginx, aby automatycznie wykrył liczbę rdzeni procesora na serwerze i użył tego numeru dla procesów pracowniczych. Określa również maksymalnie 1024 połączenia na proces pracownika.

Wniosek

W tym samouczku przedstawiliśmy kompleksowy przewodnik na temat skonfigurowania Nginx dla aplikacji Laravel. Omówiliśmy kroki w celu zainstalowania i skonfigurowania Nginx, utworzyć blok serwera Nginx dla Laravel, włącz SSL/TLS i optymalizuj wydajność. Postępując zgodnie z tymi krokami, możesz upewnić się, że aplikacja Laravel działa płynnie i wydajnie na Nginx.