У меня архитектура, как показано ниже
client
|
gateway(8085) -- oauth2 server(8094) -- SSO(8443)
|
microservices
когда я запускаю все серверы на localhost, он работает, как ожидалось. например, URL-адрес сервера oauth2, как показано ниже
servers:
gateway: http://localhost:8085
sso: http://localhost:8443
authz: http://localhost:8094
, но , когда я развертываю шлюз и сервер oauth2 за обратным прокси nginx, проверка билета службы не работает , и мне всегда нужно для повторного входа и повторного входа и ... на сервере cas
client
|
nginx
|
(gateway -- oauth2 server )-- SSO
|
microservices
URL-адрес сервера oauth2 в соответствии с nginx как показано ниже
servers:
gateway: http://localhost/gateway
sso: http://localhost:8443
authz: http://localhost/authz
вот nginx conf
server {
listen 80;
server_name localhost;
location /authz {
proxy_pass http://localhost:8094;
}
location /gateway {
proxy_pass http://localhost:8085;
}
location /oauth2 {
proxy_pass http://localhost:8085;
}
}
сетевые трассировки без nginx,
- 302 http://localhost:8085/oauth2/authorization/login-client
- 401 http://localhost:8094/oauth/authorize?response_type=...
- 302 http://localhost:8443/cas/login?service=http://authorization
- 302 http://localhost:8094/cas/login?ticket=ST-....
- 302 http://localhost:8094/oauth2/authorize?...
- 302 http://localhost:8085/login/oauth2/login-client... and take jwt from oauth2 server, and goes microservice with that jwt.
сетевые трассы для nginx
- 302 http://localhost/gateway/oauth2/authorization/login-client
- 401 http://localhost/authz/oauth/authorize?response_type=...
- 302 http://localhost:8443/cas/login?service=http://authorization
- **401** http://localhost/authz/cas/login?ticket=ST-....
почему это происходит? я так думаю проблема про nginx, потому что без nginx работает нормально. он манипулирует тем, чего я не знаю за сценой, но я не мог найти. вы можете помочь? спасибо