Я реализовал два клиентских и серверных приложения, которые взаимодействуют через сокет (rosocket). Теперь я хочу запустить множество серверов и настроить Nginx в качестве балансировщика нагрузки. У меня проблема со второй частью
Сервер был реализован на основе Spring Boot 127.0.0.1: 7002 :
@ConnectMapping(Credential.CLIENT_LOGIN_TO_MANAGER)
public void connectClient(RSocketRequester requester ) {
log.info("New client");
}
Клиент ip / порт 127.0.0.1 : 8020 :
RSocketRequester.Builder rBuilder;
...
rBuilder.setupRoute(Credential.CLIENT_LOGIN_TO_MANAGER)
.rsocketFactory(config)
.connectTcp(ip, port)
.block();
Nginx 1.18 файл: sites-enabled / default:
upstream task-api {
server 127.0.0.1:7002;
}
server {
listen 8020;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_pass http://task-api;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
Прямое соединение клиента и сервера работает правильно. Понятия не имею, как решить проблему.
Nginx журнал:
127.0.0.1 - - [12/Jul/2020:17:36:28 +0200] "\x00\x00h\x00\x00\x00\x00\x05\x00\x00\x01\x00\x00\x00\x00N \x00\x01_\x90'message/x.rsocket.composite-metadata.v0\x10application/cbor\x00\x00\x1A\xFE\x00\x00\x16\x15login-client-endpoint" 400 166 "-" "-"
Клиентский журнал:
java.nio.channels.ClosedChannelException
2020-07-12 17:36:29.815 INFO 82370 --- [ main] pl.lasota.crm.plugins.ccc.TaskClientApi : Started TaskClientApi in 1.984 seconds (JVM running for 2.621)
Журнал сервера:
2020-07-12 17:36:06.728 INFO 82210 --- [ main] o.s.b.rsocket.netty.NettyRSocketServer : Netty RSocket started on port(s): 7002
2020-07-12 17:36:06.744 WARN 82210 --- [ main] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
2020-07-12 17:36:06.779 INFO 82210 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8081 (http) with context path ''
2020-07-12 17:36:06.782 INFO 82210 --- [ main] pl.lasota.crm.cfa.server.TaskServerApi : Started TaskServerApi in 2.576 seconds (JVM running for 3.261)