具有域别名的Node.JS

时间:2018-03-23 08:26:33

标签: angularjs node.js apache

目前我们有一个具有不同域名的Node.JS服务器。这些域名是来自我们客户的域名,这些域名指向我们的服务器并使用CNAME并显示他们自己的网上商店。

所以,假设我们的域名是webshop.com,我们有2个客户:customer1.com和customer2.eu。这两个域在@和WWW上都有一个CNAME到webshop.com

目前,我们让Apache在单独的配置文件中运行所有这些域。这些网站正在重写为localhost:3000 / extern / customer-1,其中slug是基于商店名称的唯一名称。由于我们使用的是RewriteRule,因此地址保留为customer1.com,但访问者可以看到快速重定向(301)。 我们还使用了Let for Encrypt for https。

这是默认域配置的样子:

<VirtualHost *:80>
  ServerName customer1.com
  ServerAlias www.customer1.com
  RewriteEngine on
  RewriteRule ^(.*)$ https://customer1.com/$1 [R]
</VirtualHost>

<VirtualHost *:443>
  ServerName customer1.com
  ServerAlias www.customer1.com
  RewriteEngine on

  RewriteRule ^/$ http://127.0.0.1:8080/extern/customer-1 [P]
  RewriteRule ^/([^/]+)$ http://127.0.0.1:8080/extern/customer-1/$1 [P]
  RewriteRule ^/(.+) http://127.0.0.1:8080/$1 [P]

  Include /etc/letsencrypt/options-ssl-apache.conf
  SSLCertificateFile /etc/letsencrypt/live/customer1.com/cert.pem
  SSLCertificateKeyFile /etc/letsencrypt/live/customer1.com/privkey.pem
  SSLCertificateChainFile /etc/letsencrypt/live/customer1.com/chain.pem
</VirtualHost>

问题

目前Apache / Node.JS存在问题,因此所有页面在刷新(或重定向)后都会显示Cannot GET /extern/customer-1以及我们的主域。 有没有办法重构整个结构并制作自动化的添加域的过程? (我们现在手动添加了所有域。)我们的前端应用程序是用Angular编写的,所以也许有一些解决方案?

0 个答案:

没有答案