forum.bitel.ru http://forum.bitel.ru/ |
|
nginx http://forum.bitel.ru/viewtopic.php?f=22&t=8600 |
Страница 1 из 1 |
Автор: | zavndw [ 18 окт 2013, 08:02 ] |
Заголовок сообщения: | nginx |
Подскажите в чем косяк, использовал только 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; # } } } |
Автор: | snark [ 24 окт 2013, 14:17 ] |
Заголовок сообщения: | Re: nginx |
Вот такой конфиг уже не помню сколько лет нормально работает с разными версиями. Код: # 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= Т.к. я считаю, что это не обязательно. |
Автор: | pafflootiy [ 15 июн 2017, 14:46 ] |
Заголовок сообщения: | Re: nginx |
Я понимаю что тема старая, но чтоб не плодить... Вот с таким конфигом: Код: 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'а выложить. |
Автор: | zavndw [ 15 июн 2017, 19:24 ] |
Заголовок сообщения: | Re: nginx |
это адрес биллинга http://127.0.0.1:8080/bgbilling ? И какой url вы пишете |
Автор: | snark [ 15 июн 2017, 21:05 ] |
Заголовок сообщения: | Re: nginx |
Покажите Код: # grep context.path /path/to/bgb/server/data/data.properties
|
Автор: | pafflootiy [ 16 июн 2017, 20:43 ] |
Заголовок сообщения: | Re: nginx |
snark писал(а): Покажите context.path /bgbilling |
Автор: | pafflootiy [ 16 июн 2017, 20:47 ] |
Заголовок сообщения: | Re: nginx |
zavndw писал(а): это адрес биллинга http://127.0.0.1:8080/bgbilling ? биллинг и nginx на одной машине, контекст и порт биллинга не менял, если Вы про этоzavndw писал(а): И какой url вы пишете Не совсем понял вопроса ![]() |
Автор: | snark [ 16 июн 2017, 21:15 ] |
Заголовок сообщения: | Re: nginx |
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" не составит труда |
Автор: | pafflootiy [ 16 июн 2017, 21:30 ] |
Заголовок сообщения: | Re: nginx |
snark писал(а): Если все взлетит, то прикрутить "/bgbilling" не составит труда Взлетело у меня вот так...но как-то недовзлетело...собсна в топике описал ситуацию...яндекс платежи не проходят. |
Автор: | snark [ 16 июн 2017, 22:04 ] |
Заголовок сообщения: | Re: nginx |
pafflootiy писал(а): яндекс платежи не проходят Пускайте платежи мимо nginx и будет вам счастье. |
Автор: | pafflootiy [ 16 июн 2017, 22:15 ] |
Заголовок сообщения: | Re: nginx |
snark писал(а): Пускайте платежи мимо nginx и будет вам счастье. С радостью...но как? Я далек от nginx'а, максимум что умею...стырить конфиг и попытаться его адаптировать под свои исходные данные ![]() И если я правильно понимаю, изменится не только конф нгинса, но и checkUrl, avisoUrl, successUrl и shopFailUrl ? |
Автор: | snark [ 16 июн 2017, 22:46 ] |
Заголовок сообщения: | Re: nginx |
pafflootiy писал(а): как? Повесить nginx для статистики на один адрес (директива listen), а Яндекс пусть заходит через другой адрес. Оставить все как есть, а Яндекс пусть обращается не через стандартные порты 80/443, а через 8080 или, например 9090, который DNAT-ом кидать на 127.0.0.1:8080 Это что сразу в голову пришло |
Автор: | pafflootiy [ 16 июн 2017, 23:00 ] |
Заголовок сообщения: | Re: nginx |
snark писал(а): Яндекс пусть обращается не через стандартные порты 80/443, а через 8080 или Спасибо. Вопрос в догонку: куда при такой схеме прикрутить самоподписаный сертификат? Яндекс же привереда, ssl ему подавай! Сделать 2й сервер в nginx, который будет слушать(например) 8080 и пропускать весь трафик на 127.0.0.1...и как-то прилеплять ssl? Как тут прилепить сертификат? Мамо, чому я дебіл |
Автор: | snark [ 16 июн 2017, 23:44 ] |
Заголовок сообщения: | Re: nginx |
pafflootiy писал(а): куда при такой схеме прикрутить самоподписаный сертификат? Во-первых - в БГБ есть встроенная возможность прикручивать сертификаты (для mps сотоварищи так вообще без впиливания сертификата не обойтись) Во-вторых - на дворе 2017 год и |
Автор: | Phricker [ 17 июн 2017, 00:12 ] |
Заголовок сообщения: | Re: nginx |
snark писал(а): (для mps сотоварищи так вообще без впиливания сертификата не обойтись) В случае если сертификат в nGinx'е - в MPS он не обязателен. Я выключил ![]() И да, Let's Encrypt (certboot по ссылкам выше) - наше все. Единственное - просить платежные системы выключать сверку сертификата, т.к. каждые 3 месяца он меняется. |
Автор: | Phricker [ 17 июн 2017, 00:17 ] |
Заголовок сообщения: | Re: nginx |
Код: 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; } |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |