[SPRING] 외부 IP 주소에서 웹 서버에 액세스 할 수 있도록 spring-boot를 설정하는 방법
SPRING외부 IP 주소에서 웹 서버에 액세스 할 수 있도록 spring-boot를 설정하는 방법
나는 spring-boot로 Tomcat을 설정하여 외부 IP 주소로부터의 접근을 허용하는 방법에 대해 조사 해왔다. 현재 localhost : port에서 UI를 볼 수 있지만 다른 시스템에서는이 인터페이스에 액세스 할 수 없습니다.
http://localhost:8081
로컬 컴퓨터에 로그인 할 때 작동합니다.
http://192.168.0.93:8081
로컬 컴퓨터에 로그인하여 http://192.168.0.93:8081을 시도하면 작동하지 않습니다.
IP 주소를 통해 다른 컴퓨터에서 UI에 액세스하려고합니다. 작동하지 않습니다.
http://192.168.0.93:8081
내가 스프링스 문서에 도착했을 때, tomcat이 server.address를 사용하기 위해 웹 서버를 설정하기를 원하는 IP 주소를 추가 할 수 있음을 발견했다. 그러면 외부 시스템에서이 IP 주소를 통해 서버에 액세스 할 수 있습니다.
server.port=8082
server.address=192.168.0.93
주소를 제공하지 않으면 포트가 제대로 작동하지만 주소를 제공하고 실행하려고하면 해당 주소에 바인딩 할 때 문제가 발생합니다. spring-boot는 이미 locahost : 8082를 할당 한 것처럼 보입니다.
어떻게 외부에서 접근 할 수 있도록 Tomcat을 허용하고 로컬에서 액세스 할 때 자체 IP를 인식 할 수 있도록 spring-boot를 올바르게 설정합니까?
고맙습니다
java.net.BindException: Cannot assign requested address
at sun.nio.ch.Net.bind0(Native Method)
at sun.nio.ch.Net.bind(Net.java:433)
at sun.nio.ch.Net.bind(Net.java:425)
at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:340)
at org.apache.tomcat.util.net.AbstractEndpoint.start(AbstractEndpoint.java:765)
at org.apache.coyote.AbstractProtocol.start(AbstractProtocol.java:473)
at org.apache.catalina.connector.Connector.startInternal(Connector.java:986)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
at org.apache.catalina.core.StandardService.addConnector(StandardService.java:239)
at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.addPreviouslyRemovedConnectors(TomcatEmbeddedServletContainer.java:194)
at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.start(TomcatEmbeddedServletContainer.java:151)
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.startEmbeddedServletContainer(EmbeddedWebApplicationContext.java:293)
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.finishRefresh(EmbeddedWebApplicationContext.java:141)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:541)
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:118)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:766)
at org.springframework.boot.SpringApplication.createAndRefreshContext(SpringApplication.java:361)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:307)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1191)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1180)
at com.miw.mcb.server.ReactAndSpringDataRestApplication.main(ReactAndSpringDataRestApplication.java:18)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.boot.maven.AbstractRunMojo$LaunchRunner.run(AbstractRunMojo.java:478)
at java.lang.Thread.run(Thread.java:745)
2016-05-25 11:24:30 - Failed to start connector [Connector[HTTP/1.1-8081]]
org.apache.catalina.LifecycleException: Failed to start component [Connector[HTTP/1.1-8081]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153)
at org.apache.catalina.core.StandardService.addConnector(StandardService.java:239)
at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.addPreviouslyRemovedConnectors(TomcatEmbeddedServletContainer.java:194)
at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.start(TomcatEmbeddedServletContainer.java:151)
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.startEmbeddedServletContainer(EmbeddedWebApplicationContext.java:293)
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.finishRefresh(EmbeddedWebApplicationContext.java:141)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:541)
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:118)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:766)
at org.springframework.boot.SpringApplication.createAndRefreshContext(SpringApplication.java:361)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:307)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1191)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1180)
at com.miw.mcb.server.ReactAndSpringDataRestApplication.main(ReactAndSpringDataRestApplication.java:18)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.boot.maven.AbstractRunMojo$LaunchRunner.run(AbstractRunMojo.java:478)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.catalina.LifecycleException: service.getName(): "Tomcat"; Protocol handler start failed
at org.apache.catalina.connector.Connector.startInternal(Connector.java:993)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
... 19 common frames omitted
Caused by: java.net.BindException: Cannot assign requested address
at sun.nio.ch.Net.bind0(Native Method)
at sun.nio.ch.Net.bind(Net.java:433)
at sun.nio.ch.Net.bind(Net.java:425)
at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:340)
at org.apache.tomcat.util.net.AbstractEndpoint.start(AbstractEndpoint.java:765)
at org.apache.coyote.AbstractProtocol.start(AbstractProtocol.java:473)
at org.apache.catalina.connector.Connector.startInternal(Connector.java:986)
... 20 common frames omitted
2016-05-25 11:24:30 - Pausing ProtocolHandler ["http-nio-192.168.0.93-8081"]
2016-05-25 11:24:30 - Stopping service Tomcat
2016-05-25 11:24:30 - The stop() method was called on component [StandardServer[-1]] after stop() had already been called. The second call will be ignored.
2016-05-25 11:24:30 - Stopping ProtocolHandler ["http-nio-192.168.0.93-8081"]
2016-05-25 11:24:30 - Destroying ProtocolHandler ["http-nio-192.168.0.93-8081"]
2016-05-25 11:24:30 - Application startup failed
org.springframework.boot.context.embedded.EmbeddedServletContainerException: Unable to start embedded Tomcat servlet container
at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.start(TomcatEmbeddedServletContainer.java:165)
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.startEmbeddedServletContainer(EmbeddedWebApplicationContext.java:293)
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.finishRefresh(EmbeddedWebApplicationContext.java:141)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:541)
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:118)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:766)
at org.springframework.boot.SpringApplication.createAndRefreshContext(SpringApplication.java:361)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:307)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1191)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1180)
at com.miw.mcb.server.ReactAndSpringDataRestApplication.main(ReactAndSpringDataRestApplication.java:18)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.boot.maven.AbstractRunMojo$LaunchRunner.run(AbstractRunMojo.java:478)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalStateException: Tomcat connector in failed state
at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.start(TomcatEmbeddedServletContainer.java:159)
... 16 common frames omitted
해결책
아래 답변보기
해결법
-
==============================
1.많은 사람들이이 질문을 보았 기 때문에. 해결책은 방화벽이 호스팅 CentOS 컴퓨터에서 올바르게 구성되었는지 확인하고 서버 주소를 명시 적으로 설정하지 않는 것입니다.
많은 사람들이이 질문을 보았 기 때문에. 해결책은 방화벽이 호스팅 CentOS 컴퓨터에서 올바르게 구성되었는지 확인하고 서버 주소를 명시 적으로 설정하지 않는 것입니다.
잘못된 설정
이전에 방화벽을 잘못 설정하여이 작업을 수행하지 못했습니다.
server.port=8081 server.address=192.168.0.93
방화벽이 올바르게 설정되면 server.address를 포트로 지정할 필요가 없습니다.
올바른 설정
server.port=8081
이것은 내가 ip를 사용하는 다른 시스템에서 응용 프로그램에 올바르게 액세스 할 수있게 해주었습니다.
http://<someip>:<server.port> http://192.168.0.93:8081
-
==============================
2.고마워, 너 나 저장 해 줬어! 나는 이것을 코멘트에 게시하고 싶었지만 회신할만한 평판이 없다.
고마워, 너 나 저장 해 줬어! 나는 이것을 코멘트에 게시하고 싶었지만 회신할만한 평판이 없다.
방화벽 변경과 관련된 정보를 원하는 분들,
내 vm (spring 7)에 스프링 부트 웹 서버 포트를 추가하기 위해 firewalld를 사용했습니다.
내 웹 서버는 8080을 사용하여 다음과 같이했습니다.
firewall-cmd --permanent --reload --zone=public --add-port=8080/tcp* sudo systemctl restart firewalld*
변경 사항을 적용하려면 방화벽을 다시 시작하거나 다시로드해야합니다. 만약 너라면,
sudo firewall-cmd --list-all*
포트 목록에 8080 / tcp가 추가되었음을 알 수 있습니다.
from https://stackoverflow.com/questions/37445626/how-to-setup-spring-boot-to-allow-access-to-the-webserver-from-outside-ip-addres by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 스프링 MVC - 정적 파일 / 자바 스크립트, CSS 포함 (0) | 2019.03.27 |
---|---|
[SPRING] Spring 부트 2로 마이그레이션 - 보안 인코딩 된 암호가 BCrypt처럼 보이지 않음 (0) | 2019.03.27 |
[SPRING] org.springframework.beans.factory.BeanCurrentlyInCreationException : 이름이 'sessionFactory'인 빈을 만드는 동안 오류가 발생했습니다. (0) | 2019.03.27 |
[SPRING] @ControllerAdvice 예외 핸들러 메소드가 호출되지 않습니다. (0) | 2019.03.27 |
[SPRING] 타임 라인 : 인라인 = "자바 스크립트"문제 (0) | 2019.03.27 |