目前我们有一个具有不同域名的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编写的,所以也许有一些解决方案?