Ответы пользователя по тегу Nginx
  • Как сделать правильный редирект/конфиг htaccess при apache/nginx reverse-proxy?

    если nginx не уверен всегда должен отработать апачь, те же 404 и тп отрабатывает как правило сама cms а не nginx по этому мы выделим это в отдельное правило error_page 401 403 404 405 500 502 503 = @fallback;
    а трайфайл вообще не используем

    server {
    ######################################################################
    ## Server configuration
    ######################################################################
            listen *:80;
            server_name bots.klondike.digital www.bots.klondike.digital   ;
            root /var/www/bots.klondike.digital/web;
    
    
    ######################################################################
    ## Enable gzip for proxied requests and static files
    ######################################################################
        # Enable gzip for proxied requests and static files
        gzip on;
        gzip_proxied any;
        gzip_vary on;
        gzip_http_version 1.1;
        gzip_types application/javascript application/json text/css text/xml;
        gzip_comp_level 4;
    
    ######################################################################
    ## Log configuration
    ######################################################################
    #Все логи отключены
            error_log /dev/null crit;
            access_log off;
    
    ######################################################################
    ## Errors send to apache2
    ######################################################################
    # у апача своих алиасов куча,  а так же некоторая статика отдается
    # средствамси php, по этому все ошибки обрабатывать только apache2
            error_page 401 403 404 405 500 502 503 = @fallback;
            location @fallback {
                    proxy_pass              http://127.0.0.1:82;
                    proxy_set_header        Host            $host;
                    proxy_set_header        X-Real-IP       $remote_addr;
                    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    
                    }
    
    ######################################################################
    ## Locations configuration
    ######################################################################
    #Отключаем логирование ошибок No such file or directory
    ## Disable .htaccess files
    
            location ~ /\.ht {
                    deny all;
    
                    access_log off;
                    log_not_found off;
            }
            ##
            location = /favicon.ico {
                    log_not_found off;
                    access_log off;
            }
            ##
            location = /robots.txt {
                    allow all;
                    log_not_found off;
                    access_log off;
            }
            ##
    ######################################################################
    # сервисы  на сайте phpmyadmin почта и letxencrypt
            location /phpmyadmin/ {
                    deny all;
                    # поставить пароль на phpmyadmin
                    return 555;
                    root  /usr/share/phpmyadmin/;
            }
            ##
            location /webmail/ {
                    rewrite ^/(.*)$ https://$http_host:8080/$1 permanent;
            }
            # letsencrypt
             location /.well-known/acme-challenge/ {
                    alias /usr/local/ispconfig/interface/acme/;
                    default_type text/plain;
    
             }
    # static content
    # Отдаем статику напрямую с nginx
            location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|swf|flv|mp3)$ {
                    root  /var/www/bots.klondike.digital/web;
                    access_log off;
                    expires max;
                    gzip_static on;
            }
    
    # default location
            location / {
                    index index.php index.html index.htm;
                    proxy_pass              http://127.0.0.1:82;
                    proxy_set_header        Host            $host;
                    proxy_set_header        X-Real-IP       $remote_addr;
                    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
           
    
    
    }
    Ответ написан
  • Почему не запускается nginx?

    expires 8d; - замени на expires max; - требования гугл пейдж спид.
    Теперь по пункткам
    1. journalctl -xe - вам уже написали
    2. nginx -t
    3. просо посмотри что в логе nginx
    Ответ написан
    Комментировать
  • Механика работы proxy_connect_timeout?

    60 мало, тем более 3
    В прокси конект таймаут войдет и ответ сервера с той стороны, а следовательно и запрос в msyql
    Если ответа не будет за это время то вы увидите ошибку, и nginx дропнит это обращение в 500
    если же тянуть кота за ....
    то 1 вариант и второй может сильно загрузить один из бэк в следствие чего 3 явно мало, а в последнем случае равномерно нагрузить бэки для таймаута намного тяжелее и есле сервер не ответил за 3, то перейти на следующий в следствие этого при переключение клиент не заметит просадки, поскольк3 это не 60
    НО как я и говорил вы должны быть 100% уверены что за 60 и тем более 3 может выполнится тяжелый хит.
    В вашем случае есть вариант не выполнения тяжелого запроса за 3 секунды и он как дурак побежит по серверам в надежде получить хоть что-то, в результате даст 3 тяжелых хита на сервера и сдохнет.
    Ответ написан
    Комментировать
  • Как исправить 504 Gateway Time-out?

    server {
    ######################################################################
    ## Server configuration
    ######################################################################
            listen *:80;
            server_name antar-dv.ru www.antar-dv.ru   ;
            root /var/www/antar-dv.ru/web;
    ######################################################################
    ## Enable gzip for proxied requests and static files
    ######################################################################
        # Enable gzip for proxied requests and static files
        gzip on;
        gzip_proxied any;
        gzip_vary on;
        gzip_http_version 1.1;
        gzip_types application/javascript application/json text/css text/xml;
        gzip_comp_level 4;
    
    ######################################################################
    ## Log configuration
    ######################################################################
    #Все логи отключены
            error_log /dev/null crit;
            access_log off;
    ######################################################################
    ## Errors send to apache2
    ######################################################################
    # у апача своих алиасов куча,  а так же некоторая статика отдается
    # средствамси php, по этому все ошибки обрабатывать только apache2
            error_page 401 403 404 405 500 502 503 = @fallback;
            location @fallback {
                    proxy_pass              http://127.0.0.1:82;
                    proxy_set_header        Host            $host;
                    proxy_set_header        X-Real-IP       $remote_addr;
                    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
                    }
    
    ######################################################################
    ## Locations configuration
    ######################################################################
    #Отключаем логирование ошибок No such file or directory
    ## Disable .htaccess files
    
            location ~ /\.ht {
                    deny all;
                    access_log off;
                    log_not_found off;
            }
            location = /favicon.ico {
                    log_not_found off;
                    access_log off;
            }
            location = /robots.txt {
                    allow all;
                    log_not_found off;
                    access_log off;
            }
    # сервисы  на сайте phpmyadmin почта и letxencrypt
            location /phpmyadmin/ {
                    deny all;
                    root  /usr/share/phpmyadmin/;
            }
            ##
            location /webmail/ {
                    rewrite ^/(.*)$ https://$http_host:8080/$1 permanent;
            }
            # letsencrypt
             location /.well-known/acme-challenge/ {
                    alias /usr/local/ispconfig/interface/acme/;
                    default_type text/plain;
    
             }
    # static content
    # Отдаем статику напрямую с nginx
            location ~* ^.+\.(jpg|jpeg|svg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|swf|flv|mp3)$ {
                    root  /var/www/antar-dv.ru/web;
                    access_log off;
                    expires 30d;
                    gzip_static on;
            }
    
    # default location
            location / {
                    index index.php index.html index.htm;
                    proxy_pass              http://127.0.0.1:82;
                    proxy_set_header        Host            $host;
                    proxy_set_header        X-Real-IP       $remote_addr;
                    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
                                    }
    }
    
    server {
    
    ######################################################################
    ## Server configuration
    ######################################################################
            listen *:443 ssl http2;
                    server_name antar-dv.ru www.antar-dv.ru   ;
            root /var/www/antar-dv.ru/web;
    
    ######################################################################
    ## Enable gzip for proxied requests and static files
    ######################################################################
        gzip on;
        gzip_proxied any;
        gzip_vary on;
        gzip_http_version 1.1;
        gzip_types application/javascript application/json text/css text/xml;
        gzip_comp_level 4;
    
    ######################################################################
    ## SSL configuration
    ######################################################################
            ssl on;
            ssl_session_cache  shared:SSL:10m;
            ssl_session_timeout 1h;
            ssl_protocols TLSv1.2 TLSv1.1;
            add_header Strict-Transport-Security "max-age=15768000" always;
            ssl_stapling on;
            ssl_stapling_verify on;
            ssl_prefer_server_ciphers on;
            ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK;
            ssl_certificate /var/www/clients/client40/web42/ssl/antar-dv.ru-le.crt;
            ssl_certificate_key /var/www/clients/client40/web42/ssl/antar-dv.ru-le.key;
            ssl_dhparam /etc/nginx/ssl/dhparam.pem;
    ######################################################################
    ## Log configuration
    ######################################################################
    #Все логи отключены
            error_log /dev/null crit;
            access_log off;
    
    
    ######################################################################
    ## Errors send to apache2
    ######################################################################
    # у апача своих алиасов куча,  а так же некоторая статика отдается
    # средствамси php, по этому все ошибки обрабатывать только apache2
            error_page 401 403 404 405 500 502 503 = @fallback;
            location @fallback {
                    proxy_pass              https://127.0.0.1:4443;
                    proxy_set_header        Host            $host;
                    proxy_set_header        X-Real-IP       $remote_addr;
                    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
                    proxy_set_header        HTTPS           YES;
                    }
    
    ######################################################################
    ## Locations configuration
    ######################################################################
    #Отключаем логирование ошибок No such file or directory
    ## Disable .htaccess files
    
            location ~ /\.ht {
                    deny all;
                    access_log off;
                    log_not_found off;
            }
            ##
            location = /favicon.ico {
                    log_not_found off;
                    access_log off;
            }
            ##
            location = /robots.txt {
                    allow all;
                    log_not_found off;
                    access_log off;
            }
    # сервисы  на сайте phpmyadmin почта и letxencrypt
            location /phpmyadmin/ {
                    deny all;
                    root  /usr/share/phpmyadmin/;
            }
            ##
            location /webmail/ {
                    rewrite ^/(.*)$ https://$http_host:8080/$1 permanent;
            }
            # letsencrypt
             location /.well-known/acme-challenge/ {
                    alias /usr/local/ispconfig/interface/acme/;
                    default_type text/plain;
    
             }
    # static content
    # Отдаем статику напрямую с nginx
            location ~* ^.+\.(jpg|jpeg|svg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|swf|flv|mp3)$ {
                    root  /var/www/antar-dv.ru/web;
                    access_log off;
                    expires 30d;
                    gzip_static on;
            }
    # default location
            location / {
                    index index.php index.html index.htm;
                    proxy_pass              https://127.0.0.1:4443;
                    proxy_set_header        Host            $host;
                    proxy_set_header        X-Real-IP       $remote_addr;
                    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
                    proxy_set_header        HTTPS           YES;
                            }
    }
    Ответ написан
    Комментировать
  • Для каждого свой IP. Как?

    listen 192.165.55.2:80;
    Ответ написан
    Комментировать
  • Почему при HTTPS картинки увеличиваются?

    5cfa59fbb3194465079039.png
    К чему бы это
    Ответ написан
    Комментировать
  • Как исправить ошибку запуска nginx?

    1. у вас есть логи запускадемона
    2. удалите все сайты оставьте только чистый nginx убедитесь что все заработало. после этого вовращайте их на место можно просто постепенно можно выявлять принципиально ошибку.
    3. что говорит configtest, 99% вы накосяцили с конфигом сайта
    4. У вас апачь пытается запуститься на том же порту что и nginx
    Ответ написан
    Комментировать
  • Ошибка 502 nginx после обновления ssl сертификата?

    99% что дело не в самом сертификате
    по сути nginx не видит бэкэнда а тут миллион вариантов.
    нужны логи апачь и nginx
    Ответ написан
    Комментировать
  • Как в NGINX upstream проксировать несколько сайтов?

    да возможно.
    Ведь веб сервер разбирает заголовки http_referer
    Ответ написан
    Комментировать
  • Почему сайт не доступен с www, где может быть ошибка в nginx конфиге?

    дело не в nginx покажи днс записи домена
    Ответ написан
    Комментировать
  • Как сделать исключение для url, чтобы был доступен не по https, а по http?

    RewriteCond %{HTTPS} off
       # Проверяем наличие https в URL.
    RewriteCond %{REQUEST_URI} !/bitrix/admin/1c_exchange.php/$
    # ! - отрицание 
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
       # Перенаправляем протокол на http.

    Собственно заменяй свой редирект на https и все страница будет доступна
    не забыай что браузер сам кеширует https запросы и любит ним прицепляться но для обмена с 1с это не повредит.
    проверь онлайн сервисом ответа сервера убедись что 200
    Но лучше конечно поднять план обмена до новой версии, там этих костылей не нужно, он с легкостью работает на https
    Ответ написан
  • Ошибка "mysqld: Disk is full writing '/var/tmp/#sql_3946_0.MAD' (Errcode: 28). Waiting for someone to free space...", как решить?

    1. кончилось место
    2. запусти мускуль проверь все БД особенно innodb, сделай проверку всех бд и таблиц
    если ошибки есть дамп всех бд.
    и толко после этого хоть что-то делай.
    дальше авторепаир опять же всех бд
    Ну и дальше уже веселуха если что-то покоцалось.
    Ответ написан
    Комментировать
  • Как сменить порт у httpd?

    нужно во всех конфигах в папке /etc/httpd поменять 443 порт на лбой другой.
    Вариант для отдельного файла
    sed --in-place --follow-symlinks 's/443/4443/g' /etc/httpd/ports.conf

    вариант для конфигов ( у вас может отличаться)
    find /etc/httpd/ -type f -exec sed --in-place --follow-symlinks 's/<VirtualHost \*:443>/<VirtualHost \*:4443>/g' "{}" \;

    ну или тупо ручками
    посмотреть места где есть упоминания можно просто так
    find /etc/httpd -type f -exec grep -l "443" {} \;
    рестарт
    netstat -ntpl | grep httpd
    ТОЛКО не забудь сделать бэкап!
    Ответ написан
  • Как написать динамический location и try_files в конфиге NGINX?

    трай файл вообще не нужно использовать
    поскольку все коды должна отрабатывать CMS.
    Если у вас apache+nginx
    error_page 401 403 404 405 500 502 503 = @fallback;
            location @fallback {
                    proxy_pass              http://127.0.0.1:82;
                    proxy_set_header        Host            $host;
                    proxy_set_header        X-Real-IP       $remote_addr;
                    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
                    }

    Если чисто nginx то там еще проще по аналогие сделайте.
    За то, как отдавать ошибку, должен отвечать сам сайт, как минимум у всех cms есть сове офомление 404
    Вы привели частный случай но на сайте может быть миллион тонкостей, и в любом раскладе их должна попытаться обработать cms
    Ответ написан
  • Как в nginx перенаправить https запрос на другой сервер (proxy_pass)?

    Как вы знаете apache и nginx умеет держать на одном порту и айпи сразу несколько сайтов, по сути имея костыль
    разбирая заголовки http referer.
    Онако задайте себе вопрос как можно получить этот рефери по каналу который еще не установлен?
    Собственно тут и ответ ;) хочешь https - в начале гони ключи ;) а потом все остальное
    Ответ написан
    Комментировать
  • При использовании proxy_pass скорость работы приложения замедляется в разы?

    1 sub_filter - возможно это проблема
    2. пинг с этого сервера до того а не с вашего компа
    3. если есть апачь попробуй http proxy может там удет по другому как минимум статистика будет.
    Ответ написан
    Комментировать
  • Что лучше для экономии оперативной памяти?

    Nginx+PHP-FPM
    Ответ написан
    Комментировать