101 lines
3.2 KiB
Plaintext
101 lines
3.2 KiB
Plaintext
# Nginx конфигурация для сайта-визитки (PHP)
|
||
# Файл: /etc/nginx/sites-available/ospab-visit
|
||
#
|
||
# Установка на сервере:
|
||
# 1. sudo cp nginx-visit.conf /etc/nginx/sites-available/ospab-visit
|
||
# 2. sudo ln -s /etc/nginx/sites-available/ospab-visit /etc/nginx/sites-enabled/
|
||
# 3. Проверьте версию PHP: php -v
|
||
# 4. Измените строку fastcgi_pass если версия PHP другая (php8.1, php8.3 и т.д.)
|
||
# 5. sudo nginx -t && sudo systemctl reload nginx
|
||
#
|
||
# Требования:
|
||
# - PHP 8.1+ и PHP-FPM установлены
|
||
# - SSL сертификаты Let's Encrypt настроены
|
||
# - Директория /var/www/ospab-visit создана
|
||
|
||
server {
|
||
listen 443 ssl http2;
|
||
server_name ospab.host www.ospab.host;
|
||
|
||
# SSL сертификаты
|
||
ssl_certificate /etc/letsencrypt/live/ospab.host/fullchain.pem;
|
||
ssl_certificate_key /etc/letsencrypt/live/ospab.host/privkey.pem;
|
||
|
||
# SSL настройки
|
||
ssl_protocols TLSv1.2 TLSv1.3;
|
||
ssl_ciphers HIGH:!aNULL:!MD5;
|
||
ssl_prefer_server_ciphers on;
|
||
|
||
# Логи
|
||
access_log /var/log/nginx/ospab-visit-access.log;
|
||
error_log /var/log/nginx/ospab-visit-error.log;
|
||
|
||
# Корневая директория сайта
|
||
root /var/www/ospab-visit;
|
||
index index.php index.html index.htm;
|
||
|
||
# Максимальный размер загружаемых файлов
|
||
client_max_body_size 100M;
|
||
|
||
# Основная локация для PHP
|
||
location / {
|
||
try_files $uri $uri/ /index.php?$query_string;
|
||
}
|
||
|
||
# Обработка PHP файлов через PHP-FPM
|
||
location ~ \.php$ {
|
||
include snippets/fastcgi-php.conf;
|
||
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock; # Измените версию PHP если нужно
|
||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||
include fastcgi_params;
|
||
|
||
# Таймауты для PHP
|
||
fastcgi_connect_timeout 60s;
|
||
fastcgi_send_timeout 60s;
|
||
fastcgi_read_timeout 60s;
|
||
}
|
||
|
||
# Запрет доступа к скрытым файлам
|
||
location ~ /\. {
|
||
deny all;
|
||
access_log off;
|
||
log_not_found off;
|
||
}
|
||
|
||
# Кэширование статических файлов
|
||
location ~* \.(jpg|jpeg|png|gif|ico|css|js|svg|woff|woff2|ttf|eot)$ {
|
||
expires 1y;
|
||
add_header Cache-Control "public, immutable";
|
||
access_log off;
|
||
}
|
||
|
||
# Безопасность - запрет доступа к служебным файлам
|
||
location ~ /\.ht {
|
||
deny all;
|
||
}
|
||
|
||
# Запрет доступа к composer файлам
|
||
location ~ ^/(composer\.(json|lock)|package\.(json|lock))$ {
|
||
deny all;
|
||
}
|
||
}
|
||
|
||
# Редирект с HTTP на HTTPS
|
||
server {
|
||
listen 80;
|
||
server_name ospab.host www.ospab.host;
|
||
|
||
return 301 https://ospab.host$request_uri;
|
||
}
|
||
|
||
# Редирект с www на без www (опционально)
|
||
server {
|
||
listen 443 ssl http2;
|
||
server_name www.ospab.host;
|
||
|
||
ssl_certificate /etc/letsencrypt/live/ospab.host/fullchain.pem;
|
||
ssl_certificate_key /etc/letsencrypt/live/ospab.host/privkey.pem;
|
||
|
||
return 301 https://ospab.host$request_uri;
|
||
}
|