usando - ver puertos abiertos linux netstat
La aplicación ''appname'' no se pudo iniciar(el puerto 8080 no está disponible) en la aplicación de nodo de cambio abierto (9)
rhc app create ... --from-code ...
y no está disponible 8080?
.
Al igual que Mihai explicó en su answer el (port 8080 not available)
tiene que estar relacionado con la configuración de los puertos, por lo que puede ocurrir incluso si está utilizando process.env.OPENSHIFT_NODEJS_PORT
y process.env.OPENSHIFT_NODEJS_IP
correctamente.
Un consejo para mirar ~/app-root/logs/nodejs.log
es ayudar mucho, pero ¿qué pasa si el error ocurre en la rhc app create ... --from-code ...
? La aplicación no se creará, por lo tanto, no puede ssh y mirar nodejs.log
.
Intente incluir su aplicación en una versión limitada: comente todo el código que pueda.
Para mí, funcionó para comenzar solo con la aplicación expresa que inicializa y escucha. Luego, una vez que hice que se creara la aplicación openshift, he estado liberando el código poco a poco, presionando y revisando el archivo nodejs.log
.
De esta manera, descubrí que mi nombre mongoDb era "APPNAME_"+process.env.NODE_ENV
mientras openshift creó la base de datos mongoDb llamada solo APPNAME
.
Disculpas por no responder directamente a la pregunta, pero el 8080 not available
parece deberse a todo tipo de configuraciones, tal vez esto ayude a alguien.
He escrito un servidor de restauración de nodos en el café y parece que no puedo ponerlo en funcionamiento.
Al desplegar me sale el siguiente error:
Esperando puerto de aplicación (8080) estarán disponibles ...
después de lo cual recibo el siguiente error
La aplicación ''appname'' no se pudo iniciar (el puerto 8080 no está disponible)
Si coffeescript parece ser el problema, hay un trabajo alrededor de él. No me gustaría cambiar de nuevo a js.
Mi código de servidor es:
restify = require ''restify''
Bunyan = require ''bunyan''
server = restify.createServer
name: ''APPNAME''
version: ''0.0.1''
log: Bunyan.createLogger
name: ''api''
serializers:
req: ()->
return "bad"
# Usercontroller.access calls a function to process the request
server.post ''/user/access'', UserController.access
server = create.createServer()
server.listen server_port, ->
console.log "Http server listening on #{server_port}"
require(''./document'')(server.router.mounts, ''restify'')
return
El primer paso que debe revisar es mirar el registro en ~ / app-root / logs / nodejs.log
En mi caso no hubo problemas con el paquete o cualquier tipo de acceso. La única información que tengo en el registro es:
Error: escucha EACCES en errnoException (net.js: 905: 11) en Server._listen2 (net.js: 1024: 19)
Si no puede encontrar ninguna razón aparte de la consola delantera, le dice que no puede acceder a 8080, luego asegúrese de haber especificado la DIRECCIÓN IP junto con el Número de PUERTO.
Así es como lo he arreglado.
var express = require(''express'');
var app = express();
var http = require(''http'');
app.set(''port'', process.env.OPENSHIFT_NODEJS_PORT || process.env.PORT || 3002);
app.set(''ip'', process.env.OPENSHIFT_NODEJS_IP || "127.0.0.1");
http.createServer(app).listen(app.get(''port'') ,app.get(''ip''), function () {
console.log("✔ Express server listening at %s:%d ", app.get(''ip''),app.get(''port''));
server();
});
Como se indicó, el app.get (''ip'') es muy importante cuando se escucha. De lo contrario, openshift no puede iniciar su aplicación.
ACTUALIZADO:
Cómo entrar en el directorio de registro:
- SSH en su equipo con el comando rhc ssh
- Una vez que haya iniciado sesión, escriba
cd $OPENSHIFT_LOG_DIR
Allí tienes archivos de registro almacenados por el entorno Openshift.
En mi caso, estoy comprobando el error siguiente usando rhc ssh
como se sugirió anteriormente.
Unhandled rejection Error: getaddrinfo ENOTFOUND
at errnoException (dns.js:37:11)
at Object.onanswer [as oncomplete] (dns.js:124:16)
Me deshago de mi problema estableciendo el
mongo_url = process.env.OPENSHIFT_MONGODB_DB_URL;
a la mangosta uri. Estaba tratando de seguir pero
mongo_url = "mongodb://admin:pass@$OPENSHIFT_MONGODB_DB_HOST:$OPENSHIFT_MONGODB_DB_PORT/mydbname"
Esto no estaba funcionando.
Espero que esto ayude a alguien.
La aplicación Node en Openshift es un proceso de 2 pasos:
Cree una entrada en package.json sobre cómo iniciar su servidor (punto de entrada a la aplicación):
"scripts": { "start": "node server.js" }, "main": "server.js"
Use las variables de entorno OPENSHIFT para obtener IP y PUERTO:
process.env.OPENSHIFT_NODEJS_PORT process.env.OPENSHIFT_NODEJS_IP
Para obtener más detalles, consulte: OpenShift: "Error al ejecutar el inicio de control" en la aplicación del nodo
La mejor manera de resolverlo es revisando la carpeta de registros. SSH a su servidor, busque el archivo nodejs.log
, puede usar cat nodejs.log
para ver su contenido.
La razón podría ser:
- Error de sintaxis en otros archivos.
- Falta la variable de entorno del puerto
- Falta la variable de entorno IP (estas 2 últimas indicadas en otras respuestas)
Aunque dice "El puerto 8080 no está disponible", el error podría estar en un archivo que no se pudo ejecutar correctamente, por lo tanto, debe verificar los cambios recientes o simplemente consultar directamente el registro y encontrar dónde está el error.
Puede ser por varias razones. Si nodejs no se inicia correctamente, el PaaS parece estar intentando iniciarlo continuamente. O bien crea una colisión para el puerto o el error no tiene nada que ver con el problema en sí. En mi caso faltaba una dependencia. La mejor manera de resolver su problema es ssh en el contenedor de la aplicación y ver el archivo de registro: tail -f ~ / app-root / logs / nodejs.log
Recibí el mismo error y tenía que ver con la rama a la que estaba apuntando en github.
Master fue mi rama principal (la primera que se creó) y cuando señalé que estaba construida, me daría el error si señalaba cualquier otra rama.
Si usa express: app.listen(process.env.OPENSHIFT_NODEJS_PORT, process.env.OPENSHIFT_NODEJS_IP);
O:
var port = process.env.OPENSHIFT_NODEJS_PORT;
var ip = process.env.OPENSHIFT_NODEJS_IP;
app.listen(port, ip);
solucionó el problema configurando mi nombre de usuario y contraseña de mongo db