En muchos escenarios hoy en día, solicito un host VPS para alojar y ejecutar un proyecto web. No soy una excepción. Compré una pequeña victorias 03 VPS para usar. Durante el proceso de uso, enfrentamos un problema, es decir, el mismo tipo de entorno del servidor está bien, pero si tres tipos de proyectos de servidor coexisten con un PHP, un ASP y un JSP, ¿cómo deberíamos asignar el único puerto 80? Debido a que los sitios web comerciales de WWW a menudo solo pueden ocupar el puerto 80. Por supuesto, si solo realiza servicios, como las interfaces, el uso de otros puertos no entrará en conflicto con el puerto 80. Muchos desarrolladores enfrentan el problema del puerto 80, y la situación real estará limitada por el costo. Porque comprar un VPS solo para un proyecto no es económico, no es rentable, y no es conveniente administrarlo. Por lo tanto, debemos considerar cuidadosamente cómo distribuirlo a múltiples servidores al tiempo que proporciona un puerto 80, lo que permite que diferentes hosts ejecuten sus respectivos proyectos web.
Querido, ¿podemos decir que este requisito se realiza? Sí, esta no es una "tecnología mágica" o una tecnología compleja. Me pregunto si tiene alguna comprensión del "proxy inverso" en los servicios de red, una de las funciones es completar la distribución de puertos. También podríamos usar el nombre de dominio como una ruta para distribuir: cualquier solicitado por el nombre de dominio AA.com se distribuirá al puerto PHP 82 para la ejecución; Cualquier solicitado por el nombre de dominio BB.com se distribuirá al puerto ASP 83 para su ejecución; ... etcétera. Por supuesto, el puerto aquí es solo para instrucciones. Puede configurarlo a voluntad. De todos modos, la solicitud recibida del puerto 80 se procesará primero y luego se distribuirá. Reverse Proxy, en términos de Layman, solo está girando la mano izquierda hacia la mano derecha.
Cada vez que se menciona el proxy inverso, la gente generalmente piensa en NGINX, pero hoy ignoramos el famoso Nginx por el momento y usa NodeJs, un hermano del lado del servidor que también usa bucles de eventos y de hilo único. En primer lugar, Node usa JS para la programación del servidor, en lugar de Nginx para escribir la configuración o LUA, que está más en línea con mi gusto. En segundo lugar, estoy más familiarizado con el nodo, y es más fácil configurar en todos los aspectos.
El paquete Node-HTTP-Proxy que completa esta función. Para descargar e instalar, escriba:
NPM Instalar http-proxy
Después de que se complete la instalación, cree un nuevo archivo proxy.js e ingrese:
var http = require ('http'), httpProxy = require ('http-prooxy'); // crea un nuevo ser servidor proxy objeto var proxy = httpproxy.createProxyserver ({}); // captura de excepción proxy.on ('error', function (err, req, res) {res.writead 'Content-type': 'Text/Plain'}); // En cada solicitud, llame al método proxy.web (req, res config) para solicitar la distribución Crear su servidor personalizado y simplemente llame a `proxy.web ()` a proxy // una solicitud web a la tarea aprobada en las opciones // también puede usar `proxy.ws ()` a proxy una solicitud WebSockets // Var Server = requerir ('http'). // puede definir aquí su lógica personalizada para manejar la solicitud // luego proxy la solicitud. req.connection.remoteaddress));Si habla sobre el costo de usar un servidor proxy, puede ser que consumirá más operaciones de CPU que sin consumir más recursos.
Problema de uso: No se puede especificar la carpeta proxy.web (req, res, {target: 'http://vevb.com:81/foo/'});