Конфиг nginx для laravel

Конфиг nginx для laravel

Конфигурация Laravel для nginx является важным шагом при развертывании вашего веб-приложения на сервере. Настройка сервера nginx для работы с Laravel позволяет улучшить производительность и безопасность вашего приложения.

Для того чтобы настроить конфигурацию Laravel для nginx, вам необходимо определить корневую директорию вашего проекта, указать index файл (обычно index.php) и настроить перенаправление запросов на фронт-контроллер Laravel.

Также важно учитывать настройки безопасности, добавляя защиту от доступа к конфигурационным файлам и скрытых директориям.

Если вы не хотите заниматься самостоятельной настройкой конфигураций для nginx, вы всегда можете воспользоваться готовыми решениями или инструментами автоматизации, которые помогут вам оптимизировать работу вашего веб-приложения.

server {

listen 80;

server_name sitename.ru;

root /home/sitename.ru/laravel_turbo_blog/public;

add_header X-Frame-Options "SAMEORIGIN";

add_header X-XSS-Protection "1;

mode=block"; add_header X-Content-Type-Options "nosniff";

index index.html index.htm index.php;

charset utf-8;

location / {

try_files $uri $uri/ /index.php?$query_string;

}

location = /favicon.ico {

access_log off; log_not_found off;

}

location = /robots.txt {

access_log off; log_not_found off;

}

error_page 404 /index.php; location ~ \.php$ {

fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; include fastcgi_params;

}

location ~ /\.(?!well-known).* {

deny all;

} 
Конфиг nginx laravel, Http + Https

server {
    listen 80;
    listen [::]:80;

    if ($host = www.lena1.ru) {
        return 301 https://$host$request_uri;
    } # redirect to https


    server_name yoursite.ru;
        root /home/username/yoursite.ru/laravel_turbo_blog/public;

        add_header X-Frame-Options "SAMEORIGIN";
        add_header X-Content-Type-Options "nosniff";

        index index.php;
        index index.html index.htm index.php;

        charset utf-8;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }


    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }

    error_page 404 /index.php;

    location ~ \.php$ {
        fastcgi_pass unix:/run/php/php8.1-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.(?!well-known).* {
        deny all;
    }
}

server {
    listen  443 ssl;
    listen [::]:443;
    server_name yoursite.ru www.yoursite.ru;
    ssl_certificate /etc/letsencrypt/live/yoursite.ru/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/yoursite.ru/privkey.pem;
    ssl_ciphers 'TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:ECDHE-RSA-AES256-GCM-SHA384';
    ssl_prefer_server_ciphers on;
    ssl_protocols TLSv1.2 TLSv1.3;
        ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
        root /home/username/yoursite.ru/laravel_turbo_blog/public;

    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-Content-Type-Options "nosniff";
        add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";
        ssl_session_cache shared:SSL:10m;
        ssl_session_timeout 10m;
    index index.php;
    index index.html index.htm index.php;
        error_log  /var/log/nginx/zenoblog_error.log debug;
    charset utf-8;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }


    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }

    error_page 404 /index.php;

    location ~ \.php$ {
        fastcgi_pass unix:/run/php/php8.1-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.(?!well-known).* {
        deny all;
    }
}