Перейти к содержанию
Форум поддержки пользователей VamShop

Пример nginx конфига для vamshop


support

Рекомендуемые сообщения


server {
    server_name vamshop.ru;
    listen 10.100.0.10:80;
  

    ##
    # Nginx Bad Bot Blocker Includes
    # REPO: https://github.com/mitchellkrogza/nginx-ultimate-bad-bot-blocker
    ##
 include /etc/nginx/bots.d/ddos.conf; 
  include /etc/nginx/bots.d/blockbots.conf;
 

    listen 10.100.0.10:443 ssl;
    listen 10.100.0.10:443 quic;

    ssl_certificate "/var/www/httpd-cert/vamshop.ru_2025-09-22-14-34_12.crt";
    ssl_certificate_key "/var/www/httpd-cert/vamshop.ru_2025-09-22-14-34_12.key";

    http2 on;

    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
    add_header Alt-Svc 'h3=":443"; ma=86400' always;

    charset utf-8;

    gzip on;
    gzip_proxied expired no-cache no-store private auth;
    gzip_types text/css text/xml application/javascript text/plain application/json image/svg+xml image/x-icon;
    gzip_comp_level 5;

    set $root_path /var/www/vamshop.ru_usr/data/www/vamshop.ru;
    root $root_path;
    disable_symlinks if_not_owner from=$root_path;

    # HTACCESS: ErrorDocument ... -> error_page
    error_page 400 401 403 404 500 /404.html;
    location = /404.html { internal; try_files /404.html =404; }

    # HTACCESS: Redirect 301 /adminka https://vamshop.ru/admin/start.php/
    location = /adminka { return 301 https://vamshop.ru/admin/start.php/; }

    # ==== Переписывания из .htaccess (срабатывают ДО выбора location) ====
    # product_reviews_write.php/info/p{ID}_{slug}.html -> product_reviews_write.php?products_id={ID}
    rewrite ^/product_reviews_write\.php/info/p(.*)_.*\.html$ /product_reviews_write.php?products_id=$1 last;

    # product_reviews_write.php/action/process/info/p{ID}_{slug}.html -> product_reviews_write.php?action=process&products_id={ID}
    rewrite ^/product_reviews_write\.php/action/process/info/p([0-9]*)_.*\.html$ /product_reviews_write.php?action=process&products_id=$1 last;

    # product_info.php/info/p{ID}_{slug}/action/add_product -> product_info.php?products_id={ID}&action=add_product
    rewrite ^/product_info\.php/info/p(.*)_.*/action/add_product$ /product_info.php?products_id=$1&action=add_product last;

    # shopping_cart.php/products_id/{PID}/info/p{ID}_{slug}.html -> shopping_cart.php?products_id={PID}
    rewrite ^/shopping_cart\.php/products_id/([0-9]*)/info/p([0-9]*)_.*\.html$ /shopping_cart.php?products_id=$1 last;

    # (product_info|index|shop_content|news|faq|articles|article_info).php* -> redirector.php
    rewrite ^/(product_info|index|shop_content|news|faq|articles|article_info)\.php(.*)$ /redirector.php last;
    # =====================================================================

    # Главный роутер
    location / {
        index index.php index.html;
        try_files $uri $uri/ /index.php?$args;
    }

    # HTACCESS: "если не файл/папка/ссылка и запрошен *.html -> manager.php"
    # В nginx это делаем отдельным location на .html
    location ~* \.html($|/) {
        try_files $uri $uri/ /manager.php?$args;
    }

    # PHP
    location ~ \.php$ {
        include /etc/nginx/fastcgi_params;
        fastcgi_pass unix:/var/run/vamshop.ru.sock;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        fastcgi_param DOCUMENT_ROOT $realpath_root;
        fastcgi_param QUERY_STRING $query_string;
    }

    # Статика + долгие Expires (совместимо с блоком из .htaccess)
    location ~* \.(?:css|js|json|map|woff2?|ttf|eot|otf|svg|png|gif|jpe?g|ico|webp)$ {
        access_log off;
        log_not_found off;
        expires 10y;
        add_header Cache-Control "public, max-age=315360000, immutable";
        try_files $uri $uri/ /index.php?$args;
    }

    # fallback для явного вызова (оставил твой)
    location @fallback {
        fastcgi_pass unix:/var/run/vamshop.ru.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include /etc/nginx/fastcgi_params;
    }

    include "/etc/nginx/fastpanel2-sites/vamshop.ru_usr/vamshop.ru.includes";
    include /etc/nginx/fastpanel2-includes/*.conf;

error_log  /var/www/vamshop.ru_usr/data/logs/vamshop.ru-frontend.error.log;
    access_log /var/www/vamshop.ru_usr/data/logs/vamshop.ru-frontend.access.log;
}

php:


[vamshop.ru]
user = vamshop.ru_usr
group = vamshop.ru_usr
listen = /var/run/vamshop.ru.sock
listen.owner = vamshop.ru_usr
listen.group = www-data
listen.mode = 0660

pm = dynamic
pm.max_children = 10
pm.min_spare_servers = 3
pm.max_spare_servers = 5
pm.max_requests = 1000

php_admin_value[date.timezone] = "Europe/Moscow"
php_admin_value[display_errors] = "off"
php_admin_value[log_errors] = "On"
php_admin_value[mail.add_x_header] = "On"
php_admin_value[max_execution_time] = "120"
php_admin_value[max_input_vars] = "10000"
php_admin_value[opcache.blacklist_filename] = "/opt/opcache-blacklists/opcache-*.blacklist"
php_admin_value[opcache.max_accelerated_files] = "100000"
php_admin_value[output_buffering] = "4096"
php_admin_value[post_max_size] = "100M"
php_admin_value[sendmail_path] = "/usr/sbin/sendmail -t -i -f 'admin@vamshop.ru'"
php_admin_value[session.save_path] = "/var/www/vamshop.ru_usr/data/tmp"
php_admin_value[short_open_tag] = "On"
php_admin_value[upload_max_filesize] = "100M"
php_admin_value[upload_tmp_dir] = "/var/www/vamshop.ru_usr/data/tmp"


catch_workers_output = no
access.format = "%{REMOTE_ADDR}e - [%t] \"%m %r%Q%q %{SERVER_PROTOCOL}e\" %s %{kilo}M \"%{HTTP_REFERER}e\" \"%{HTTP_USER_AGENT}e\""
access.log = /var/www/vamshop.ru_usr/data/logs/vamshop.ru-backend.access.log

 

Ссылка на сообщение
Поделиться на другие сайты
×
×
  • Создать...