Problem polega na tym, że mamy jedną nazwę domeny, ale mamy dwa serwery w dwóch różnych technologiach. Przykład: NodeJS i Tomcat Server. Ale chcę, aby użytkownik wpisał nazwę domeny, aby przenieść ją do serwera NodeJS i kliknąć przycisk logowania na stronie, aby został przekierowany na serwer tomcat. Ale nazwa DNS nie powinna się zmieniać.
Przykład: Domain Name - example.com
1) nodeJs server :: on port 3000
2) Tomcat server :: on port 8080
Kiedy użytkownik odwiedza example.com
. Node Js powinien odpowiedzieć. Ale jeśli kliknę przycisk, taki jak login, powinienem przejść do tomcat (URL: example.com/login)
2 odpowiedzi
W tym miejscu może być konieczne użycie serwera odwrotnego proxy i skonfigurowanie go do żądań proxy do dwa serwery aplikacji. Możesz skonfigurować zwrotny serwer proxy ze ścieżką /login
, aby wywoływać serwer Tomcat. Zalecam korzystanie z ngnix, ale popularny jest również serwer httpd Apache. Jeśli używasz nginx, twoja konfiguracja może wyglądać mniej więcej tak:
server {
listen 80;
server_name domain2.com;
access_log logs/domain2.access.log main;
# pass request to the tomcat server
location /login {
proxy_pass http://127.0.0.1:8080;
}
# pass request to the node server
location / {
proxy_pass http://127.0.0.1:3000;
}
}
/nodejs/[anything]
dla usługi nodejs i tak dalej, nie powinieneś. W przeciwnym razie tak, musisz.
Użyj subdomen i ustaw usługę DNS tak, aby wskazywała je na różne adresy IP.
Example.com> nodeJs IP login.example.com> Tomcat IP
Pozwala to uniknąć pokazywania numeru portu lub czegokolwiek innego, użytkownik zobaczy po prostu słowo „login” w innym miejscu - login.example.com zamiast example.com/login
Podobne pytania
Nowe pytania
java
Java to język programowania wysokiego poziomu. Użyj tego tagu, jeśli masz problemy z używaniem lub zrozumieniem samego języka. Ten tag jest rzadko używany samodzielnie i jest najczęściej używany w połączeniu z [spring], [spring-boot], [jakarta-ee], [android], [javafx], [hadoop], [gradle] i [maven].
example.com:8080/login