我有一个Mac Mini,我已经安装了XAMPP (Apache+MySQL)。我已经配置了cloud喇叭形隧道,并与单域网站一起工作。
然而,我有麻烦与cloud喇叭口隧道服务多个不同的域。
有没有人尝试在一台PC上使用cloud喇叭口隧道配置多个域?如果有,你能解释一下是怎么做的吗?谢谢。
更新1:
目标是多个域的单个隧道,每个域服务于不同的站点。示例配置文件(单个隧道)~/. cloud喇叭口/config.yml:
隧道:TUNNEL_IDcredentials-file:/道路//credentials_file TUNNEL_ID.json
ingress:
- hostname: domain1.com
service: https://www.site1.local:443
originRequest:
noTLSVerify: true
- hostname: domain2.com
service: https://www.site2.local:443
originRequest:
noTLSVerify: true
- service: http_status:404
上面的配置文件适用于为site1.local提供服务的第一个域。然而,第二个域总是为site1提供服务。Local代替site2.local.
更新2:
无法为域分配特定的端口(在本例中为7443)。返回此错误ERR_SSL_PROTOCOL_ERROR。仅供参考,我正在使用MacMini M1, XAMP(与Apache)。
httpd-ssl.conf file:
---------------------
Listen 7443
<VirtualHost _default_:7443>
ServerName www.site1.local
ServerAlias *.site1.local
DocumentRoot "/Applications/XAMPP/xamppfiles/htdocs/site1"
<Directory "/applications/XAMPP/xamppfiles/htdocs/site1">
Options Indexes FollowSymLinks ExecCGI Includes
AllowOverride All
Require all granted
</Directory>
SSLEngine on
SSLCertificateFile "/Applications/XAMPP/xamppfiles/etc/ssl.crt/server.crt"
SSLCertificateKeyFile "/Applications/XAMPP/xamppfiles/etc/ssl.key/server.key"
ErrorLog "/Applications/XAMPP/xamppfiles/logs/mysite-ssl-error_log"
</VirtualHost>
---------------------
config.yml file:
---------------------
tunnel: TUNNEL_ID
credentials-file: /path/to/credentials_file/TUNNEL_ID.json
ingress:
- hostname: domain1.com
service: https://www.site1.local:7443
originRequest:
noTLSVerify: true
- service: http_status:404
---------------------
Cloudflare隧道是在Account级别创建的。如果您的cloudflare帐户有超过1个tld,您将能够将来自不同域的流量路由到同一主机。
配置很简单:如果您使用的是CF零信任GUI,则需要为隧道配置中的每个TLD创建一个入口规则。
的例子:让我们假设你的CF帐户上有TLD1和TLD2。
- 您登录cloudflare,并打开零信任控制台。
- 你点击Access/Tunnels,进入你创建的隧道列表。
- 选择在笔记本电脑上运行的隧道,单击
configure
。 - 点击
Public Host name
。在这里,您将看到创建隧道时添加的第一条路由。设为:my-laptop.TLD1
- 点击
Add a Public Host name
。 - 选择一个
Subdomain
,你想指向你的笔记本电脑。 - 点击
Domain
,选择第二个你想要指向你的起源的TLD。 - 完成其余的入局规则,单击
save
。
我的笔记本电脑给你。TLD1和我的笔记本。TLD2都路由流量到您的笔记本电脑。
Updated:根据你在问题上提供的示例,你应该调整Origin服务器的端口,使其不重叠(两者都在同一主机上暴露端口443)。例如:
tunnel: TUNNEL_ID credentials-file:/path/to/credentials_file/TUNNEL_ID.json
入口:
hostname: domain1.com service: https://www.site1.local:1443 originRequest: noTLSVerify: true
hostname: domain2.com service: https://www.site2.local:2443 originRequest: noTLSVerify: true
service: http_status:404
更新2:
如果你在笔记本电脑上运行应用程序进行测试/演示,你可以这样设置一个入口规则:
tunnel: TUNNEL_ID credentials-file: /path/to/credentials_file/TUNNEL_ID.json
ingress:
hostname: domain1.com service: http://www.site1.local:8443 originRequest: noTLSVerify: true
hostname: domain2.com service: http://www.site2.local:9443 originRequest: noTLSVerify: true
service: http_status:404
当用户访问应用程序时,CF代理将通过ssl为应用程序提供服务,但CF和源之间的连接不会。
如果您出于任何原因想要在设置上完全(严格)ssl连接,您可以按照以下指南在apache服务器上创建和加载证书:https://developers.cloudflare.com/ssl/origin-configuration/ssl-modes/full-strict/