Если AT&T действительно использует uceprotect.net, затем идут путем, на который намекает Scott Lundberg.
В противном случае затем свяжитесь с поддержкой AT&T и посмотрите, какова определенная причина. У них должен быть процесс, до которого можно пойти, удалили хост из блока или по крайней мере процесса для применения, чтобы удалить его.
Вместо этого попробуйте использовать поддержку обратного прокси . Пример раздела location
:
location / {
proxy_pass http://localhost:8080;
proxy_redirect http://localhost:8080/ /;
proxy_read_timeout 60s;
# May not need or want to set Host. Should default to the above hostname.
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
будут передаваться второму серверу, работающему на localhost: 8080
. Это сохраняет POST
и также должно сохранять другие типы запросов, если это когда-либо станет проблемой.
Проблема в том, что внешние перенаправления никогда не будут повторно отправлять POST
] данные. Это записано в спецификацию HTTP (см. Раздел 3xx). Любой клиент, который делает это, нарушает спецификацию.
Если код состояния 301/302 получен в ответ на запрос, отличный от GET или HEAD, пользовательский агент НЕ ДОЛЖЕН автоматически перенаправлять запрос, если он не может быть подтвержден пользователь поскольку это может изменить условия, при которых был выдан запрос.
Я почти уверен, что большинство браузеров реализуют это, просто заставляя перенаправленный запрос быть запросом GET
. Теоретически спецификация допускает наличие браузера, который будет спрашивать пользователя, перенаправлять ли данные POST
, но я не знаю, что в настоящее время делает.
Вы также можете добиться этого в Nginx, но используя плагин mirror
, не перезаписывайте
:
location "/post/uri/to/redirect/" {
mirror "/mirror";
mirror_request_body on;
return 200;
}
location = "/mirror" {
internal;
proxy_pass "https://target_domain$request_uri";
proxy_set_header Host "target_domain";
proxy_set_header X-Original-URI $request_uri;
proxy_set_header X-SERVER-PORT $server_port;
proxy_set_header X-SERVER-ADDR $server_addr;
proxy_set_header X-REAL-IP $remote_addr;
}