Tengo 3 aplicaciones escritas en node js usando el módulo express. Todas las aplicaciones admiten http y https. Lo creé para tres puertos diferentes. Quiero ejecutar todas las aplicaciones en una sola PC con una sola IP pero diferentes dominios. Tengo un servidor linux. Además, escuché que nginx podría hacerlo. Quiero como siguiente ejemplo
Localhost:3000 -> www.domain.com Localhost:3001 ->subdomain.domain.com Localhost:3002 -> www.anotherdomain.com¿Cómo puedo hacerlo con él en el entorno Linux? Por favor, guíeme usando ejemplos adecuados.
Suponiendo que ya haya instalado Nginx (apt install Nginx).
Simplemente cree un archivo de host virtual separado para cada servidor.
Por ejemplo, puede ser así para www.dominio.com
/etc/nginx/sites-enabled/domain.com.conf server { listen 80; server_name www.domain.com; location / { proxy_pass localhost:3000; } }y me gusta esto para subdominio.dominio.com
/etc/nginx/sites-enabled/subdomain.domain.com.conf server { listen 80; server_name subdomain.domain.com; location / { proxy_pass localhost:3001; } }Estoy evitando cosas como SSL, archivo raíz, etc., ya que se pueden encontrar en otros lugares.
No olvide probar nginx sudo nginx -t y reiniciarlo para recoger los cambios ( sudo service nginx restart )
/etc/nginx/Es bueno que primero aprenda a editar el archivo de configuración.https://docs.nginx.com/nginx/admin-guide/web-server/web-server/
server { listen 80; server_name www.domain.com; location / { proxy_pass http://Localhost:3000; } } server { listen 80; server_name subdomain.domain.com; location / { proxy_pass http://Localhost:3001; } } server { listen 80; server_name www.anotherdomain.com; location / { proxy_pass http://Localhost:3002; } }Cuando usa dominios para visitar su página, la configuración anterior puede ayudarlo. Además, debe especificar un servidor como su servidor predeterminado cuando visite con la dirección IP.