Cómo configurar la bota de primavera para permitir el acceso al servidor web desde las direcciones IP externas -- java campo con spring campo con tomcat campo con spring-boot campo con webserver camp Relacionados El problema

How to setup spring-boot to allow access to the webserver from outside IP addresses


14
vote

problema

Español

He estado investigando cómo configurar tomcat Dentro de spring-boot para permitir el acceso desde las direcciones IP externas. Actualmente puedo ver la UI de Locahost: Puerto, pero no puedo acceder a esto desde otros sistemas.

  http://localhost:8081    

Cuando estoy conectado a la computadora local, funciona.

  http://192.168.0.93:8081   

Cuando haya iniciado sesión en la computadora local y intente http://192.168.0.93:8081 no lo hace trabajo.

Quiero acceder a la UI de otra computadora a través de su dirección IP no funciona.

  http://192.168.0.93:8081   

Cuando llegué a springs Documentación Encontré que puede agregar la dirección IP en la que desea que Tomcat configure el servidor web. Esto debería permitir que se acceda al servidor a través de esta dirección IP por sistemas externos.

  server.port=8082 server.address=192.168.0.93   

El puerto funciona bien si no proporciono la dirección, pero cuando proporcione la dirección e intente ejecutarlo, me encuentro con un problema para la encuadernación a esa dirección. Parece que spring-boot ya ha asignado a Locahost: 8082.

Pregunta:

¿Cómo configuré correctamente from pyspark.sql.functions import count from pyspark.sql.functions import pandas_udf, PandasUDFType from scipy.stats import entropy # Define a UDAF @pandas_udf("double", PandasUDFType.GROUPED_AGG) def my_entropy(data): p_data = data.value_counts() # counts occurrence of each value s = entropy(p_data) # get entropy from counts return s # Perform a groupby-agg groupby_col = "a_column" agg_col = "another_column" df2return = df .groupBy(groupby_cols) .agg(count(agg_col).alias("count"), my_entropy(agg_col).alias("s")) df2return.show() 0 para permitir que se acceda a TOMACT a las direcciones externas y reconozca su propia IP cuando se accede localmente?

Gracias

Rastreo de la pila:

  from pyspark.sql.functions import count from pyspark.sql.functions import pandas_udf, PandasUDFType from scipy.stats import entropy    # Define a UDAF @pandas_udf("double", PandasUDFType.GROUPED_AGG) def my_entropy(data):      p_data = data.value_counts()           # counts occurrence of each value     s = entropy(p_data)  # get entropy from counts     return s   # Perform a groupby-agg  groupby_col = "a_column" agg_col = "another_column" df2return = df     .groupBy(groupby_cols)     .agg(count(agg_col).alias("count"),         my_entropy(agg_col).alias("s"))  df2return.show() 111  
Original en ingles

I have been looking into how to setup tomcat within spring-boot to allow access from outside IP addresses. Currently I can view the UI from locahost:port but I can not access this from other systems.

http://localhost:8081  

When I am logged into the local computer it works.

http://192.168.0.93:8081 

When I am logged into the local computer and try http://192.168.0.93:8081 it does not work.

I want to access the UI from another computer via its IP address it does not work.

http://192.168.0.93:8081 

When I got to springs documentation I found you can add the IP address on which you want tomcat to set the webserver for using server.address. This should then allow the server to be accessed via this IP address by outside systems.

server.port=8082 server.address=192.168.0.93 

The port works fine if I do not supply the address but when I supply the address and try to run it I run into an issue for binding to that address. It looks like spring-boot has already assigned locahost:8082.

Question:

How do I correctly setup spring-boot to allow tomact to be accessed by outside addresses and recognize its own IP when accessed locally?

Thank you

Stack Trace:

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 
              
         
         

Lista de respuestas

5
 
vote
vote
La mejor respuesta
 

Dado que muchas personas han visto esta pregunta. La resolución era asegurarse de que el firewall se configuró correctamente en la máquina CentOS de alojamiento y no estableciera explícitamente la dirección del servidor.

Configuración incorrecta

Este falló anteriormente con el firewall incorrectamente configurado

  server.port=8081 server.address=192.168.0.93   

Una vez que el firewall está correctamente configurado , no necesita especificar el servidor.address solo el puerto .

Configuración correcta

  server.port=8081   

Esto me permitió acceder a la solicitud correctamente de otros sistemas utilizando su IP.

  http://<someip>:<server.port> http://192.168.0.93:8081   
 

Since so many people have viewed this question. The resolution was to make sure the firewall was configured correctly on the hosting CentOS machine and not set the server address explicitly.

INCORRECT SETUP

This failed previously with the firewall incorrectly setup

server.port=8081 server.address=192.168.0.93 

Once the firewall is correctly setup you do not need to specify the server.address just the port.

CORRECT SETUP

server.port=8081 

This allowed me to access the application correctly from other systems using its ip.

http://<someip>:<server.port> http://192.168.0.93:8081 
 
 
         
         
3
 
vote

¡Gracias, me salvaste toneladas! Quería publicar esto en los comentarios, pero no tengo suficiente reputación para responder.

aquellos de ustedes que desean la información con respecto a los cambios de firewall,

He usado Firewalld para agregar mis puertos de servidor web de Springboot en mi VM (CENTOS7)

Mi servidor web estaba usando 8080, así que lo hice:

  firewall-cmd --permanent --reload --zone=public --add-port=8080/tcp*  sudo systemctl restart firewalld*   

Debe reiniciar / volver a cargar el firewalld para aplicar los cambios. Si usted,

  sudo firewall-cmd --list-all*   

Puede encontrar 8080/tcp se ha agregado a la lista de puertos

 

Thank you, you saved me tons! I wanted to post this in comments, but I don't have enough reputation to reply.

Those of you who want the information regarding firewall changes,

I used firewalld to add my springboot webserver ports in my vm(centos7)

My webserver was using 8080, so I did:

firewall-cmd --permanent --reload --zone=public --add-port=8080/tcp*  sudo systemctl restart firewalld* 

you need to restart/reload the firewalld to apply the changes. if you,

sudo firewall-cmd --list-all* 

you can find 8080/tcp has been added to ports list

 
 
 
 
2
 
vote

Esto se puede hacer fácilmente usando ufw6

Para ver los puertos abiertos actualmente Enter: sudo ufw status numbered (Tome una captura de pantalla solo por seguridad)

Para abrir el puerto Entrar: sudo ufw allow 8080 (8080 o cualquier puerto que desee)

Para eliminar el puerto Enter: sudo ufw delete {number}

Recuerde revisar el número con server.port=8081 0 antes de eliminarlo.

: -)

 

This can be done easily by using ufw

To view currently opened ports enter: sudo ufw status numbered (Take a screenshot just for safety)

To open port enter: sudo ufw allow 8080 (8080 or any port you want)

To remove port enter: sudo ufw delete {number}

Remember to double check the number with sudo ufw status numbered before you delete it.

:-)

 
 
0
 
vote

Este problema es causado por el firewall que necesita para abrir el puerto. Estoy usando Ubuntu. Este comando abrió el puerto para mí. Mi aplicación utiliza puerto 8000, por lo que usé el comando a continuación para abrir el puerto

  server.port=8081 111  

luego use el comando para reiniciar el servicio de firewall

  server.port=8081 2  

También verifique si ha configurado el servidor.servlet.context-ruta en la aplicación Springboot para conocer el punto final correcto. Si no vaya directamente al puerto

 

This problem is caused by the firewall you need to open the port. I am using ubuntu. This command opened the port for me. My application uses port 8000 so I used the command below to open the port

firewall-cmd --permanent --zone=public --add-port=8080/tcp 

Then use the command to restart the firewall service

sudo systemctl restart firewalld 

Also check if you have set the server.servlet.context-path in the springboot application to know the correct endpoint.If not go directly to the port

 
 

Relacionados problema

18  ¿Cómo puedo crear un servidor web local para mis scripts de Python?  ( How can i create an local webserver for my python scripts ) 
Estoy buscando usar un servidor web local para ejecutar una serie de scripts de Python para el usuario. Por diversas razones inevitables, el script de Python ...

44  Diferencias de tamaño de archivo después de copiar un archivo a un servidor Vía FTP  ( File size differences after copying a file to a server v%c3%ada ftp ) 
He creado un script PHP para actualizar un servidor web que está vivo dentro de un directorio local. Estoy migrando el guión en Python. Funciona bien en su ma...

5  ¿En Linux ¿La gente lleva una aplicación web de Java o usa IPTables y se ejecuta como no root?  ( On linux do people chroot a java web application or use iptables and run as non ) 
Cuando ejecuta un contenedor de servlet de Java que le gustaría servir contenido estático y dinámico en el puerto 80, tiene la pregunta clásica de si ejecutar...

1  Error en la implementación del sitio web a Azure Keystone.js  ( Error on website deployment to azure keystone js ) 
Estoy tratando de implementar una aplicación de inicio de Keystones.js incorporado en Nede.js, al nivel compartido de Azure Website. Estoy recibiendo un err...

26  HTTP: Generando el encabezado Etag  ( Http generating etag header ) 
¿Cómo genero un encabezado HTTP ETAG para un archivo de recursos? ...

0  ¿A dónde desapareció mi servicio de estado de ASP.NET?  ( Where has my asp net state service disappeared to ) 
Configuré mi servicio de estado de ASP.NET para iniciar automáticamente el otro día en un servidor de Win 2003 de VSP alojado. ¡Volví hoy y el servicio ha des...

1  ¿Hay alguna manera de obtener archivos de un servidor web cuando se desactiva el listado de directorio?  ( Is there a way to get files from a webserver when directory listing is deactivat ) 
Intento construir un "rastreador" o un "descargador atuomático" para cada archivo se basa en un servidor web / página web. Entonces, en mi opinión, hay dos ...

2  ¿Qué servidor web debo usar dentro de Kubernetes para Ruby On Rails? [cerrado]  ( Which web server should i use inside kubernetes for ruby on rails ) 
cerrado . Esta pregunta es basada en opinión . Actualmente no está aceptando respuestas. ¿...

0  ¿Cómo puedo pasar los datos posteriores a un índice de ubicación de NGINX predeterminado sin reescribir nada?  ( How can i pass post data to an nginx location index default without rewriting an ) 
Este es mi bloque de ubicación NGINX CONF: class SomeMessage{ id, title } 0 Cuando publico datos a / foo, no termina en index.php (el class SomeMessa...

2  iPhone: Streaming en vivo HTTP sin ningún procesamiento lateral del servidor  ( Iphone http live streaming without any server side processing ) 
Quiero poder (en vivo) transmitir los marcos / video de la cámara del iPhone a Internet. He visto en un hilo ( transmisión de video de un iPhone ) que es posi...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos