Re: nginx reverse proxy и nginx backend не пропускает ip
Evgeniy Berdnikov Wrote: --- > On Wed, Aug 09, 2017 at 08:54:24AM -0400, igroykt wrote: > > Отдает 403. В логе: > > 1.1.1.1 - - [09/Aug/2017:21:50:07 +0900] "GET /pwned/ HTTP/1.0" 403 > 564 "-" > > "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 > (KHTML, like > > Gecko) Chrome/59.0.3071.115 Safari/537.36" "1.2.3.4" > > 1.1.1.1 - - [09/Aug/2017:21:50:08 +0900] "GET /favicon.ico HTTP/1.0" > 200 > > 1150 "https://office.mytona.com/pwned/"; "Mozilla/5.0 (Windows NT > 10.0; > > Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) > Chrome/59.0.3071.115 > > Safari/537.36" "1.2.3.4" > > где 1.1.1.1 это адрес frontend а 1.2.3.4 адрес backend. > > логформат на backend: > > log_format main '$remote_addr - $remote_user [$time_local] > "$request" ' > > '$status $body_bytes_sent "$http_referer" ' > > '"$http_user_agent"' 'http_x_forwarded_for = > > $http_x_forwarded_for, real_ip_remote_addr = $realip_remote_addr'; > > Судя по логу x-forwarded-for проходит в remote_addr сохраняется > адрес > > reverse proxy. > > Не вижу в логе знаков равенства (=), которые присутствуют в > log_format. > Вероятно, применяется другая директива log_format. > -- > Eugene Berdnikov > ___ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru хэхэ, а ты был прав :) вся беда из-за лог формат. ошибку при проверке не выдавало но и конфиг не считывали видимо. вернул лог формат к исходному виду и все директивы заработали как надо в том числе и set_real_ip_from. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,275983,276022#msg-276022 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: nginx reverse proxy и nginx backend не пропускает ip
ну без разницы. вроде в этом треде такая же проблема. https://stackoverflow.com/questions/39176931/nginx-allowdeny-realip-remote-addr/39183303#39183303 решили с помощью модуля луа. не хотелось бы раздувать nginx. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,275983,275985#msg-275985 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
nginx reverse proxy и nginx backend не пропускает ip
Всем привет. nginx frontend: server{ ... location / { 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 X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Host $server_name; proxy_redirect off; proxy_connect_timeout 2s; proxy_pass https://office; } } nginx version: nginx/1.13.3 built by gcc 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC) built with OpenSSL 1.0.1e-fips 11 Feb 2013 TLS SNI support enabled configure arguments: --with-http_ssl_module --with-http_stub_status_module --with-http_flv_module --with-http_mp4_module --with-http_realip_module === nginx backend: server { .. location / { . location ^~ /restricted { allow 1.2.3.4; deny all; location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_read_timeout 300; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_intercept_errors on; include fastcgi_params; } } } nginx version: nginx/1.13.3 built by gcc 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) built with OpenSSL 1.0.1e-fips 11 Feb 2013 TLS SNI support enabled configure arguments: --with-http_stub_status_module --with-http_ssl_module --with-file-aio --with-threads --with-http_mp4_module --with-http_flv_module --with-http_realip_module Отдает 403. В логе: 1.1.1.1 - - [09/Aug/2017:21:50:07 +0900] "GET /pwned/ HTTP/1.0" 403 564 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36" "1.2.3.4" 1.1.1.1 - - [09/Aug/2017:21:50:08 +0900] "GET /favicon.ico HTTP/1.0" 200 1150 "https://office.mytona.com/pwned/"; "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36" "1.2.3.4" где 1.1.1.1 это адрес frontend а 1.2.3.4 адрес backend. логформат на backend: log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent"' 'http_x_forwarded_for = $http_x_forwarded_for, real_ip_remote_addr = $realip_remote_addr'; Судя по логу x-forwarded-for проходит в remote_addr сохраняется адрес reverse proxy. Как жить? Posted at Nginx Forum: https://forum.nginx.org/read.php?21,275983,275983#msg-275983 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: oauth+property list=403 forbidden
Вот заголовки png: Request URL:https://host.example.com/somedir/some.png Request Method:GET Status Code:200 (from cache) Remote Address:x.x.x.x Response Headers accept-ranges:bytes allow:GET, POST, HEAD content-length:65811 content-type:image/png date:Thu, 01 Sep 2016 10:51:31 GMT etag:"575506e6-10113" last-modified:Mon, 06 Jun 2016 05:15:18 GMT server:nginx status:200 а вот заголовки проблемных файлов: Request URL:itms-services://?action=download-manifest&url=https://host.example.com/somedir/some.plist Request Headers Provisional headers are shown Upgrade-Insecure-Requests:1 User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36 Query String Parameters view source view URL encoded action:download-manifest url:https://host.example.com/somedir/some.plist Posted at Nginx Forum: https://forum.nginx.org/read.php?21,269332,269339#msg-269339 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
oauth+property list=403 forbidden
Всем привет. Есть backend на nginx который раздает plist+ipa. Есть frontend который передает запросы на oauth2_proxy который проксирует на backend. Проблема в том, что если с frontend запросить plist, то отдается http код 403. 127.0.0.1 - - [01/Sep/2016:11:02:33 +0900] 127.0.0.1:4181 GET - "/somdir/some.plist" HTTP/1.0 "itunesstored/1.0 iOS/8.4 model/iPad3,3 build/12H143 (5; dt:78)" 403 2255 0.000 Когда как все остальные файлы отдаются нормально. Конфиг: server { listen 443 ssl http2; ssl on; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA256:ECDHE-ECDSA-AES256-SHA256:ECDHE-RSA-AES256-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA256:DHE-RSA-AES256-SHA256:AES256-GCM-SHA384:AES256-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:AES128-GCM-SHA256:AES128-SHA256:AES128-SHA:DES-CBC3-SHA:!RC4:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS'; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; ssl_certificate /etc/ssl/some.crt; ssl_certificate_key /etc/ssl/some.key; server_name host.example.com; server_tokens off; add_header Strict-Transport-Security max-age=2592000; add_header Allow "GET, POST, HEAD" always; access_log /usr/local/nginx/logs/some_access.log main; error_log /usr/local/nginx/logs/some_error.log; location / { proxy_pass http://127.0.0.1:4181; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Scheme $scheme; expires off; } } как быть? куда копать? Posted at Nginx Forum: https://forum.nginx.org/read.php?21,269332,269332#msg-269332 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Как вытащить нужные данные из user-agent?
igroykt Wrote: --- > Ясно. Ну деваться уже некуда. Вроде решил вложенными if-ами. > В итоге получилась следующая бяка: > Если в строке есть android но нет намека на kindlefire... > if ($http_user_agent ~* "(android)") { > set $android A; > } > if ($http_user_agent !~* > "(kftt|kfot|kfjwa|kfjwi|kfsowi|kfthwa|kfthwi|kfapwa|kfapwi|kfaswi|kftb > wi|kfmewi|kffowi|kfsawa|kfsawi|kfarwi)") { > set $android "${android}B"; > } > if ($android = AB) { > set $android_rewrite perform; > } > > Ну и наоборот > if ($http_user_agent ~* "(android)") { > set $amazon A; > } > if ($http_user_agent ~* > "(kftt|kfot|kfjwa|kfjwi|kfsowi|kfthwa|kfthwi|kfapwa|kfapwi|kfaswi|kftb > wi|kfmewi|kffowi|kfsawa|kfsawi|kfarwi)") { > set $amazon "${amazon}B"; > } > if ($amazon = AB) { > set $amazon_rewrite perform; > } > Вообще наверное лучше искомые слова для kindlefire вынести в > переменную чтобы в нескольких местах не подправлять если выйдут новые > девайсы. Как бы теперь запихнуть эти kftt и т.д. в одну переменную? чтобы получилось if ($http_user_agent ~* $kindle) Мап не сработал: map $host $kindlefire { default kftt|kfot|kfjwa|kfjwi|kfsowi|kfthwa|kfthwi|kfapwa|kfapwi|kfaswi|kftbwi|kfmewi|kffowi|kfsawa|kfsawi|kfarwi; } и сет тоже не проканал: set $kindlefire kftt|kfot|kfjwa|kfjwi|kfsowi|kfthwa|kfthwi|kfapwa|kfapwi|kfaswi|kftbwi|kfmewi|kffowi|kfsawa|kfsawi|kfarwi; if ($http_user_agent ~* "($kindlefire)") { set $amazon "${amazon}B"; } Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264075,264099#msg-264099 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Как вытащить нужные данные из user-agent?
Ясно. Ну деваться уже некуда. Вроде решил вложенными if-ами. В итоге получилась следующая бяка: Если в строке есть android но нет намека на kindlefire... if ($http_user_agent ~* "(android)") { set $android A; } if ($http_user_agent !~* "(kftt|kfot|kfjwa|kfjwi|kfsowi|kfthwa|kfthwi|kfapwa|kfapwi|kfaswi|kftbwi|kfmewi|kffowi|kfsawa|kfsawi|kfarwi)") { set $android "${android}B"; } if ($android = AB) { set $android_rewrite perform; } Ну и наоборот if ($http_user_agent ~* "(android)") { set $amazon A; } if ($http_user_agent ~* "(kftt|kfot|kfjwa|kfjwi|kfsowi|kfthwa|kfthwi|kfapwa|kfapwi|kfaswi|kftbwi|kfmewi|kffowi|kfsawa|kfsawi|kfarwi)") { set $amazon "${amazon}B"; } if ($amazon = AB) { set $amazon_rewrite perform; } Вообще наверное лучше искомые слова для kindlefire вынести в переменную чтобы в нескольких местах не подправлять если выйдут новые девайсы. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264075,264098#msg-264098 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Как вытащить нужные данные из user-agent?
Всем привет! Есть такая строка HTTP/1.0" 301 178 "-" "Mozilla/5.0 (Linux; Android 4.0.3; KFTT Build/IML74K) AppleWebKit/537.36 (KHTML, like Gecko) Silk/47.2.3 like Chrome/47.0.2526.83 Safari/537.36" Надо вытащить либо KFTT либо Build/ либо Silk. Задача определить устройства kindlefire и редиректить на один ресурс а остальные android устройства на другой. Всякие разные регулярки перебрал но пока без результатно. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264075,264075#msg-264075 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru