nginx error_page 200
Здравствуйте, Nginx-ru. у клиента nginx проксирует запросы на tomcat. tomcat должен возвращать 301 с хитрым url, но у него регулярно затекает мозг и он периодически начинает возвращать 200. Помогает рестарт. Клиент просит временно, пока они разбираются с явой, сделать перехват этих 200 с преобразованием в 301, подобного тому что делает tomcat, но по упрощенной схеме. Вот никак не соображу как этот перехват сделать. Возможно-ли это в принципе? -- С уважением, Alexander mailto:t...@irk.ru ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: nginx error_page 200
Здравствуйте, Evgeniy. Вы писали 15 августа 2019 г., 1:33:21: > On Thu, Aug 15, 2019 at 12:48:56AM +0800, Alexander Titaev wrote: >> у клиента nginx проксирует запросы на tomcat. tomcat должен возвращать >> 301 с хитрым url, но у него регулярно затекает >> мозг и он периодически начинает возвращать 200. Помогает рестарт. >> Клиент просит временно, пока они разбираются с >> явой, сделать перехват этих 200 с преобразованием в 301, подобного тому >> что делает tomcat, но по упрощенной схеме. Вот >> никак не соображу как этот перехват сделать. Возможно-ли это в принципе? > Приложение отдаёт 200 с правильным содержимым Location: в заголовке? > Без nginx: пропустите его выдачу через netsed ... "s/200 /301 /". так это одно самое нагруженное location 301 должно отдавать, есть другие для которых 200 норма -- С уважением, Alexander mailto:t...@irk.ru ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
auth by cert
Здравствуйте, Nginx-ru. берем мануал https://docs.nginx.com/nginx/admin-guide/security-controls/securing-http-traffic-upstream/ и строгаем песочницу [root@localhost ~]# cat /etc/nginx/conf.d/test.conf server { listen *:443 ssl; listen *:1443 ssl; server_name test; access_log /var/log/nginx/test_access.log; error_log /var/log/nginx/test_error.log; ssl_certificate /etc/nginx/ssl/test.crt; ssl_certificate_key /etc/nginx/ssl/test.key; ssl_client_certificate /etc/nginx/ssl/ca.crt; ssl_verify_client on; root /var/www; location / { } } [root@localhost ~]# cat /etc/nginx/conf.d/proxy.conf server { listen *:443 ssl; server_name proxy; access_log /var/log/nginx/proxy_access.log; error_log /var/log/nginx/proxy_error.log ; ssl_certificate /etc/nginx/ssl/proxy.crt; ssl_certificate_key /etc/nginx/ssl/proxy.key; root /var/www1; location / { } location /test { rewrite ^/test(.*)$ $1 break; proxy_pass https://test; proxy_set_header Host test; proxy_ssl_certificate/etc/nginx/ssl/client.crt; proxy_ssl_certificate_key/etc/nginx/ssl/client.key; proxy_ssl_trusted_certificate /etc/nginx/ssl/ca.crt; proxy_ssl_verifyoff; } location /test2 { rewrite ^/test2(.*)$ $1 break; proxy_pass https://test:1443; proxy_set_header Host test; proxy_ssl_certificate/etc/nginx/ssl/client.crt; proxy_ssl_certificate_key/etc/nginx/ssl/client.key; proxy_ssl_trusted_certificate /etc/nginx/ssl/ca.crt; proxy_ssl_verifyon; } } тестируем [root@localhost conf.d]# curl --cacer /etc/nginx/ssl/ca.crt --key /etc/nginx/ssl/client.key --cert /etc/nginx/ssl/client.crt --resolve test:443:127.0.0.1 https://test Mon Oct 4 10:37:00 UTC 2021 работает [root@localhost conf.d]# curl --cacer /etc/nginx/ssl/ca.crt --key /etc/nginx/ssl/client.key --cert /etc/nginx/ssl/client.crt --resolve test:1443:127.0.0.1 https://test:1443 Mon Oct 4 10:37:00 UTC 2021 работает [root@localhost conf.d]# curl --cacer /etc/nginx/ssl/ca.crt --resolve proxy:443:127.0.0.1 https://proxy/test2/ Mon Oct 4 10:37:00 UTC 2021 работает [root@localhost conf.d]# curl --cacer /etc/nginx/ssl/ca.crt --resolve proxy:443:127.0.0.1 https://proxy/test/ 400 Bad Request No required SSL certificate was sent nginx/1.20.1 и еще, если сделать proxy_ssl_verify on; [root@localhost ~]# curl --cacer /etc/nginx/ssl/ca.crt --resolve proxy:443:127.0.0.1 https://proxy/test/ 502 Bad Gateway 502 Bad Gateway nginx/1.20.1 [root@localhost ~]# curl --cacer /etc/nginx/ssl/ca.crt --resolve proxy:443:127.0.0.1 https://proxy/test2/ Mon Oct 4 10:37:00 UTC 2021 [root@localhost ~]# tail -1 /var/log/nginx/proxy_error.log 2021/10/04 17:39:50 [error] 9230#9230: *80 upstream SSL certificate does not match "test" while SSL handshaking to upstream, client: 127.0.0.1, server: proxy, request: "GET /test/ HTTP/1.1", upstream: "https://127.0.0.1:443/";, host: "proxy" [root@localhost ~]# tail -2 /var/log/nginx/proxy_access.log 127.0.0.1 - - [04/Oct/2021:17:39:50 +] "GET /test/ HTTP/1.1" 502 157 "-" "curl/7.29.0" 127.0.0.1 - - [04/Oct/2021:17:39:54 +] "GET /test2/ HTTP/1.1" 200 29 "-" "curl/7.29.0" что я делаю не так? -- С уважением, Alexander mailto:t...@irk.ru ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: auth by cert
Здравствуйте, Alexander. Вы писали 5 октября 2021 г., 14:38:09: > что я делаю не так? разобрался proxy_ssl_server_name on; -- С уважением, Alexander mailto:t...@irk.ru ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Requests to the new URL
Здравствуйте, Rasin. Вы писали 29 июня 2022 г., 22:33:30: > Добрый день. > Подскажите пожалуйста, есть софт, в докере поднятый. > Работает только с location / { > proxy_pass http://127.0.0.1:; > ... > } > Хочу сделать чтобы открывался location /soft { > proxy_pass http://127.0.0.1:; > ... > } > Но с последним выдаёт, что не может найти скрипты и прочее. > Я так понимаю он посылает заголовок, который непонятен софту. > Что необходимо сделать, куда копнуть, подскажите пожалуйста. в последнем случае проксируемый url будет содержать /soft, вот его и надо реврайтить в / -- С уважением, Alexander mailto:t...@irk.ru ___ nginx-ru mailing list -- nginx-ru@nginx.org To unsubscribe send an email to nginx-ru-le...@nginx.org