BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 28 апр 2024, 01:25

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 16 ] 
Автор Сообщение
 Заголовок сообщения: nginx
СообщениеДобавлено: 18 окт 2013, 08:02 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 27 мар 2012, 11:59
Сообщения: 2676
Карма: 72
Подскажите в чем косяк, использовал только http, решил сделать https все настроил и работает, но при заходе на страницу https://stat.provider.ru/ не открываеться статистика, когда дописываю bgbilling/webexecuter заходит
Код:
user nginx;
worker_processes  4;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    tcp_nopush     on;
    tcp_nodelay    on;

    keepalive_timeout  65;

    server {
        listen       80;
        server_name  stat.provider.ru;

   rewrite ^/$ /bgbilling/webexecuter last;
   rewrite ^/(.*)$ /bgbilling/$1 last;
   location /bgbilling/executer {
         deny all;
   }
   location /bgbilling/dealer {
      deny all;
   }
   location /bgbilling/idealer {
      deny all;
   }
   location /bgbilling/ {
         proxy_pass http://10.1.1.1:8080;
         proxy_redirect http://stat.provider.ru/bgbilling /;
         proxy_set_header   Host   $host;
         proxy_set_header   X-Real-IP   $remote_addr;
         proxy_set_header   X-Forwarded-For   $proxy_add_x_forwarded_for;
         client_max_body_size   10m;
         client_body_buffer_size   128k;
         proxy_connect_timeout   90;
         proxy_send_timeout   90;
         proxy_read_timeout   90;
         proxy_buffer_size   4k;
         proxy_buffers      4 32k;
         proxy_busy_buffers_size   64k;
         proxy_temp_file_write_size   64k;

}   

    }


    # HTTPS server
    #
    server {
        listen       443;
   include /etc/nginx/ssl.conf;
    #    ssl                  on;
    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;
   rewrite ^/$ /bgbilling/webexecuter last;
   client_max_body_size 10m;
        proxy_set_header Host $host;
        proxy_set_header Connection close;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_read_timeout 60;
        gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;

    #    ssl_session_timeout  5m;
   location ~ /\.ht {
                deny all;
        }

        location /executer {
                deny all;
        }

        location ~ ^.*/mpsexecuter {
                deny all;
        }

       location / {
                proxy_pass https://10.1.1.1:8443/bgbilling/;
        }
    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    }

}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: nginx
СообщениеДобавлено: 24 окт 2013, 14:17 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
Вот такой конфиг уже не помню сколько лет нормально работает с разными версиями.
Код:
# grep -vE '^(#|$)' /etc/nginx/nginx.conf
user nginx;
worker_processes 1;
events {
    worker_connections 1024;
    use epoll;
}
http {
    include         /etc/nginx/mime.types;
    default_type    application/octet-stream;
    server_tokens   off;
    sendfile        on;
    tcp_nodelay     on;
    tcp_nopush      on;
    # ---------- server / ----------
    # дефолтный виртуальный хост который обрабатывает запросы когда nginx не может найти server в котором server_name = Host в запросе клиента
    server {
        listen 80 default_server;
        server_name localhost;
        root       /dev/null;
        access_log off;
        error_log  /dev/null;
        rewrite ^ http://stat.provider.ru/? permanent;
    }
    # ---------- / server ----------
    # ---------- server / ----------
    server {
        listen 80;
        server_name stat.provider.ru;
        # root ведет в никуда ибо нех nginx-у искать то чего нету
        root       /dev/null;
        access_log off;
        error_log  /dev/null;
        charset    windows-1251;
        add_header X-UA-Compatible IE=EmulateIE7;
        add_header Cache-Control no-store;
        add_header Cache-Control must-revalidate;
        add_header Last-Modified "Thu, 01 Jan 1970 00:00:01 GMT";
        expires epoch;
        proxy_store off;
        proxy_intercept_errors on;
        proxy_set_header Host            $host;
        proxy_set_header X-Real-IP       $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        if ($args ~* (ChangePassword|ContractStatus)) { return 403; }
        location = / {
            proxy_pass http://127.0.0.1:8080/webexecuter;
        }
        location / {
            proxy_pass http://127.0.0.1:8080;
        }
        location /executer {
            deny all;
        }
        location /id {
            deny all;
        }
        location /mpsexecuter {
            deny all;
        }
        error_page 403 404 = @error;
        location @error  {
            rewrite ^ http://$host? permanent;
        }
        location ~* \.(txt|orig)$ {
            deny all;
        }
        location /img/0.gif {
            empty_gif;
        }
        location ~* \.(ico|jpg|jpeg|gif|png|css|js|xsl|html|pdf|doc|xls|zip|rar|7z)$ {
            root /home/billing/server/webroot;
        }
    }
    # ---------- / server ----------
}

Если сюда HTTPS вместо/рядом с HTTP запилить и я думаю, что все взлетит.


Единственное НО - у меня в пути нет слова "bgbilling":
Код:
# grep context.path /home/billing/server/data/data.properties
context.path=

Т.к. я считаю, что это не обязательно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: nginx
СообщениеДобавлено: 15 июн 2017, 14:46 
Не в сети

Зарегистрирован: 05 июн 2014, 01:18
Сообщения: 149
Откуда: Котлас
Карма: 0
Я понимаю что тема старая, но чтоб не плодить...
Вот с таким конфигом:
Код:
user nginx;
worker_processes  1;
error_log  /var/log/nginx/debug.log debug;
error_log  /var/log/nginx/error.log;
pid        /run/nginx.pid;

events {
   worker_connections  1024;
}
   
http {
      include /etc/nginx/mime.types;
      default_type  application/octet-stream;
      
      log_format  main  '$remote_addr - $remote_user [$time_local] $status '
                  '"$request" $body_bytes_sent "$http_referer" '
                  '"$http_user_agent" "$http_x_forwarded_for"';
                     
      access_log /var/log/nginx/access.log  main;
                        
      sendfile       on;
      tcp_nopush     on;
      tcp_nodelay    on;
                              
      server {                                   
        listen       443;
        server_name  lk.provider.com;

        ssl on;
        ssl_certificate cert/lk.crt;
        ssl_certificate_key cert/lk.key;

        ssl_protocols SSLv3 TLSv1;
        ssl_ciphers ALL:-ADH:+HIGH:+MEDIUM:-LOW:-SSLv2:-EXP;
        ssl_session_cache shared:SSL:10m;

      keepalive_timeout    70;
                                          
        access_log /var/log/nginx/domains/lk.log combined;
        error_log /var/log/nginx/domains/lk.error.log error;
        error_log /var/log/nginx/domains/lk.debug.log debug;
         
      # запросы к / перенаправлять на webexecuter
      rewrite ^/$ /bgbilling/webexecuter last;

      # ко всем запросам добавлять префикс /bgbilling
      #rewrite ^/(.*)$ /bgbilling/$1 last;
         
      # запросы клиента биллинга
      #location /bgbilling/executer {
        #           deny all;
        #   }

      # прием платежей модуль MPS
           location /bgbilling/mpsexecuter {
                   deny all;
           }
      
      # дилерские платежи (старая система)
      location /bgbilling/dealer {
                   deny all;
           }
      
      # дилерские платежи      
      location /bgbilling/idealer {
                   deny all;
           }
                        
      location /bgbilling/ {
                proxy_pass http://127.0.0.1:8080/bgbilling;
                proxy_redirect http://lk.provider.com/bgbilling https://lk.provider.com/bgbilling;
                proxy_redirect http://127.0.0.1:8080/bgbilling https://lk.provider.com/bgbilling;

            proxy_set_header   Host             $host;
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
            client_max_body_size       10m;
            client_body_buffer_size    128k;
            proxy_connect_timeout      90;
            proxy_send_timeout         90;
            proxy_read_timeout         90;
                                                                              
            proxy_buffer_size          4k;
            proxy_buffers              4 32k;
            proxy_busy_buffers_size    64k;
            proxy_temp_file_write_size 64k;
      }
     }
}

Получаю
Код:
149.202.98.161 - - [15/Jun/2017:11:41:45 +0300] "GET / HTTP/1.1" 404 0 "-" "Mozilla/5.0 (Windows NT 6.1; rv:45.0) Gecko/20100101 Firefox/45.0"
149.202.98.161 - - [15/Jun/2017:11:41:45 +0300] "GET /favicon.ico HTTP/1.1" 404 168 "-" "Mozilla/5.0 (Windows NT 6.1; rv:45.0) Gecko/20100101 Firefox/45.0"
149.202.98.161 - - [15/Jun/2017:11:41:46 +0300] "GET /favicon.ico HTTP/1.1" 404 168 "-" "Mozilla/5.0 (Windows NT 6.1; rv:45.0) Gecko/20100101 Firefox/45.0"

Если надо, можно дебаг nginx'а выложить.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: nginx
СообщениеДобавлено: 15 июн 2017, 19:24 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 27 мар 2012, 11:59
Сообщения: 2676
Карма: 72
это адрес биллинга http://127.0.0.1:8080/bgbilling ?
И какой url вы пишете


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: nginx
СообщениеДобавлено: 15 июн 2017, 21:05 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
Покажите
Код:
# grep context.path /path/to/bgb/server/data/data.properties


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: nginx
СообщениеДобавлено: 16 июн 2017, 20:43 
Не в сети

Зарегистрирован: 05 июн 2014, 01:18
Сообщения: 149
Откуда: Котлас
Карма: 0
snark писал(а):
Покажите context.path

/bgbilling


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: nginx
СообщениеДобавлено: 16 июн 2017, 20:47 
Не в сети

Зарегистрирован: 05 июн 2014, 01:18
Сообщения: 149
Откуда: Котлас
Карма: 0
zavndw писал(а):
это адрес биллинга http://127.0.0.1:8080/bgbilling ?
биллинг и nginx на одной машине, контекст и порт биллинга не менял, если Вы про это
zavndw писал(а):
И какой url вы пишете
Не совсем понял вопроса :roll: .


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: nginx
СообщениеДобавлено: 16 июн 2017, 21:15 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
pafflootiy писал(а):
Код:
server {

    ...

    rewrite ^/$ /bgbilling/webexecuter last;

    ...

    location /bgbilling/ {
        ...
    }
}
Какая-то странная конструкция, если честно.

Попробуйт, пожалуйста, без SSL (прикручивается в последнюю очередь, когда все работает на 146%) в таком варианте
Код:
# grep context.path data/data.properties
context.path=

Код:
server.xslt=http://127.0.0.1:8080/xsl/
web.xslt=/xsl/

Код:
server {
    listen 80;
    server_name examle.com;

    root /dev/null;

    access_log /path/to/access.log;
    error_log  /path/to/error.log;

    add_header Cache-Control no-store;
    add_header Cache-Control must-revalidate;
    add_header Last-Modified "Thu, 01 Jan 1970 00:00:01 GMT";
    expires epoch;

    proxy_store off;
    proxy_intercept_errors on;
    proxy_set_header Host            $host;
    proxy_set_header X-Real-IP       $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;


    location = / {
        proxy_pass http://127.0.0.1:8080/webexecuter;
    }

    location / {
        proxy_pass http://127.0.0.1:8080;
    }

    location /executer {
        deny all;
    }

    location /id {
        deny all;
    }

    location /mpsexecuter {
        deny all;
    }

    error_page 403 404 = @error;

    location @error  {
        rewrite ^ http://$host? permanent;
    }

    location /img/0.gif {
        empty_gif;
    }
}

Если все взлетит, то прикрутить "/bgbilling" не составит труда


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: nginx
СообщениеДобавлено: 16 июн 2017, 21:30 
Не в сети

Зарегистрирован: 05 июн 2014, 01:18
Сообщения: 149
Откуда: Котлас
Карма: 0
snark писал(а):
Если все взлетит, то прикрутить "/bgbilling" не составит труда

Взлетело у меня вот так...но как-то недовзлетело...собсна в топике описал ситуацию...яндекс платежи не проходят.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: nginx
СообщениеДобавлено: 16 июн 2017, 22:04 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
pafflootiy писал(а):
яндекс платежи не проходят

Пускайте платежи мимо nginx и будет вам счастье.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: nginx
СообщениеДобавлено: 16 июн 2017, 22:15 
Не в сети

Зарегистрирован: 05 июн 2014, 01:18
Сообщения: 149
Откуда: Котлас
Карма: 0
snark писал(а):
Пускайте платежи мимо nginx и будет вам счастье.
С радостью...но как?
Я далек от nginx'а, максимум что умею...стырить конфиг и попытаться его адаптировать под свои исходные данные :)
И если я правильно понимаю, изменится не только конф нгинса, но и checkUrl, avisoUrl, successUrl и shopFailUrl ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: nginx
СообщениеДобавлено: 16 июн 2017, 22:46 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
pafflootiy писал(а):
как?

Повесить nginx для статистики на один адрес (директива listen), а Яндекс пусть заходит через другой адрес.
Оставить все как есть, а Яндекс пусть обращается не через стандартные порты 80/443, а через 8080 или, например 9090, который DNAT-ом кидать на 127.0.0.1:8080
Это что сразу в голову пришло


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: nginx
СообщениеДобавлено: 16 июн 2017, 23:00 
Не в сети

Зарегистрирован: 05 июн 2014, 01:18
Сообщения: 149
Откуда: Котлас
Карма: 0
snark писал(а):
Яндекс пусть обращается не через стандартные порты 80/443, а через 8080 или
Спасибо.
Вопрос в догонку: куда при такой схеме прикрутить самоподписаный сертификат? Яндекс же привереда, ssl ему подавай!
Сделать 2й сервер в nginx, который будет слушать(например) 8080 и пропускать весь трафик на 127.0.0.1...и как-то прилеплять ssl? Как тут прилепить сертификат?
Мамо, чому я дебіл


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: nginx
СообщениеДобавлено: 16 июн 2017, 23:44 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
pafflootiy писал(а):
куда при такой схеме прикрутить самоподписаный сертификат?

Во-первых - в БГБ есть встроенная возможность прикручивать сертификаты (для mps сотоварищи так вообще без впиливания сертификата не обойтись)
Во-вторых - на дворе 2017 год и Путин провел прямую линию использовать для HTTPS и, ставших все более привередливыми в плане SSL, браузеров самоподписанный сертификат - это, как говорится, mauvais ton, особенно когда есть certbot, WoSign, тысячи их


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: nginx
СообщениеДобавлено: 17 июн 2017, 00:12 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
snark писал(а):
(для mps сотоварищи так вообще без впиливания сертификата не обойтись)

В случае если сертификат в nGinx'е - в MPS он не обязателен. Я выключил :)
И да, Let's Encrypt (certboot по ссылкам выше) - наше все.
Единственное - просить платежные системы выключать сверку сертификата, т.к. каждые 3 месяца он меняется.

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: nginx
СообщениеДобавлено: 17 июн 2017, 00:17 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Код:
server {
        listen 443 default_server;
        server_name  test.ru;
        ssl on;

        ssl_certificate      /etc/letsencrypt/live/test.ru/fullchain.pem;
        ssl_certificate_key  /etc/letsencrypt/live/test.ru/privkey.pem;
        ssl_dhparam /etc/nginx/ssl/dhparam.pem;

        ssl_session_timeout 5m;
        ssl_session_cache shared:SSL:10m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers kEECDH+AES128:kEECDH:kEDH:-3DES:kRSA+AES128:kEDH+3DES:DES-CBC3-SHA:!RC4:!aNULL:!eNULL:!MD5:!EXPORT:!LOW:!SEED:!CAMELLIA:!IDEA:!PSK:!SRP:!SSLv2;
        ssl_prefer_server_ciphers on;
        add_header Strict-Transport-Security "max-age=31536000;";
        add_header Content-Security-Policy-Report-Only "default-src https:; script-src https: 'unsafe-eval' 'unsafe-inline'; style-src https: 'unsafe-inline'; img-src https: data:; font-src https: data:; report-uri /csp-report";
.....
blablabla
...
}

Меняете порт сервера и у вас еще один сервер в nGinx'е.
При этом совсем не обязательно поднимать для яндекса и иже с ним отдельные сервера, т.к. внутри location вы можете ограничивать доступы для того же яндекса и т.п.
Код:
location /bgbilling/mpsexecuter/8/1 {
    proxy_pass http://127.0.0.1:8080;
    proxy_redirect http://127.0.0.1/bgbilling/mpsexecuter /;
    proxy_set_header   Host             $host;
    proxy_set_header   X-Real-IP        $remote_addr;
    proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
    allow 8.8.8.8;
    deny all;
}


В случае с яндексом это выглядит как то так
Код:
location /bgbilling/yaexecuter3 {
    access_log /var/log/nginx/ya.log;
    proxy_pass http://127.0.0.1:8080;
    proxy_redirect http://127.0.0.1/bgbilling/yaexecuter3 /;
    proxy_set_header   Host             $host;
    proxy_set_header   X-Real-IP        $remote_addr;
    proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
    allow 77.75.157.166;
    allow 77.75.157.170;
    allow 77.75.157.168;
    allow 77.75.157.169;
    allow 77.75.159.166;
    allow 77.75.159.170;
    deny all;
}

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 16 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
POWERED_BY
Русская поддержка phpBB
[ Time : 0.190s | 50 Queries | GZIP : On ]