我目前在我的服务器上设置了 nginx my.server.com。使用当前配置,我使用http://my.server.com/app1或访问不同的应用程序http://my.server.com/app2。
我有一个这样的apps.conf位置:/etc/nginx/sites-enabled/
upstream app1_servers {
server 172.12.11.10:8080;
}
upstream app2_servers{
server 172.12.11.10:9090;
}
server {
listen 80;
server_name my.server.com;
return 301 https://my.server.com/$request_uri; #force https
}
server {
listen 443;
ssl on;
ssl_certificate /etc/ssl/my.server.com/cert.pem;
ssl_certificate_key /etc/ssl/my.server.com/priv.pem;
server_name my.server.com;
location /app1 {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-Proto https;
proxy_pass http://app1_servers/app1;
proxy_redirect http://$host https://$host;
proxy_set_header Host $host;
}
location /app2 {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host; …Run Code Online (Sandbox Code Playgroud) 我是 StackExchange 的新手,正在尝试寻找一些有关配置问题的帮助。我需要为 HAProxy 创建一个配置,它允许我将 Tomcat 应用程序上下文路径动态代理到子域。子域/路径不能硬编码,应设置为变量。我已经查看了整个站点中建议的其他内容,但没有一个涉及这个特定问题。到目前为止,我已经从各种现有建议中汇总了此配置。
这就是我需要的。
http://site1.domain.com/pathhttp://<ip>:8080/site1/path当 tomcat 应用程序返回指向资产的链接时,它们也会有一个需要重定向的路径。
https://site1.example.com/site1/image.jpghttps://site1.example.com/image.jpg我已经使用本网站的示例和其他指南获得了这么多,但我在这方面的知识有限。我不确定如何删除路径中的 site1。
# Frontend Definition
frontend tomcat_contexts
bind *:80
bind *:443 ssl crt /etc/haproxy/cert.pem
acl http ssl_fc,not
http-request redirect scheme https if http
reqadd X-Forwarded-Proto:\ https
default_backend cluster
# Backend Definition
backend cluster
balance roundrobin
cookie JSESSIONID prefix nocache
# Perform Subdomain url rewrite
http-request set-var(req.subdomain) req.hdr(host),lower,regsub(\.example\.com$,) if { hdr_end(host) -i .domain.com }
http-request …Run Code Online (Sandbox Code Playgroud) 我有一个 Synology NAS,有不同的虚拟主机,所以我有一个 DDNS ( user.synology.me),假设虚拟主机是server1,server2和server3,所以我可以使用server1.user.synology.me等访问它们。
我指着我example.com来user.synology.me使用CNAME,然后我创建了一个子域:server.example.com使用CNAME指向它server1.user.synology.me,问题是,当我去server.example.com需要我user.synology.me,而不是server1.user.synology.me。
我能在这里做什么?
network-attached-storage domain cname-record subdomain synology
我已为我的域生成 Lets Encrypt通配符证书*.domain.com。
我认为该证书对于任何嵌套子域都有效*.*.domain.com,例如it.*.domain.com或fr.*.domain.com。但浏览器给我错误,该通配符证书是为 颁发的domain.com,而不是为*.domain.com。我尝试*.*.domain.com使用 CertBot 颁发新证书,但出现错误(不允许使用多个通配符)。
是否可以实现此目的,或者我是否必须为每个第一级子域手动颁发通配符证书?
我正在研究 Let's Encrypt 的 DNS-01 挑战;我有一个关于子域过程的问题 [1]。
比方说,网站example.com 提供免费的子域;是什么阻止我通过声明 _acme-challenge.example.com 子域来处理 DNS-01 挑战来请求 *.example.com 的 Let's Encrypt 通配符证书?
ACME 协议(或其他任何协议)中是否有任何内容阻止我这样做?
[1] = https://letsencrypt.org/docs/challenge-types/#dns-01-challenge
domain-name-system subdomain certificate-authority lets-encrypt
我有一个 OpenWRT 路由器设置,192.168.1.1带有搜索域local(而不是默认的lan)。
我有一个服务器设置,192.168.1.200,主机名,server.local。
我有一个工作站 ,192.168.1.10主机名workstation.local。
server.local还运行 NGINX 反向代理,以提供子域,例如sub.server.local.
如果我的工作站尝试访问 ,server.local则会正确解析为指向192.168.1.200。
但是,如果我的工作站尝试访问 ,sub.server.local它无法解析为192.168.1.200。
如果我的工作站已将192.168.1.200 sub.server.local, 添加到其主机文件中,则它可以正确解析,并且服务器反向代理会将传入连接路由到正确的端口。
我该如何解决这个问题,以便所有子域都server.local解析为192.168.1.200?不必为服务器上的每个子域添加主机记录到每个工作站,这显然是不可持续的。
我假设我需要更改 OpenWRT 路由器上的一些 DNS 记录,但是查看 Luci(Web 界面)中的设置,没有发现任何内容能够实现此目的。
有任何想法吗?
我们有一台服务器,我们在上面托管私人服务。这些服务也可以从世界其他地方访问,但根据来自哪个 IP 请求的应用程序级别略有不同。
应用程序在 app1.domain.com 等子域上运行,因此我想将 *.domain.com 添加到某个地方的异常并将其指向我们的 VPN IP 而不是公共 IP。/etc/hosts 是一种矫枉过正,因为这个办公室有 25 个客户端系统,而且每次我们启动新应用程序时,我都必须更新每个人的 /etc/hosts。我正在寻找更通用的一次性解决方案。
DNS 可以成为我的解决方案吗?但即使在这种情况下,每次启动新应用程序时我都不必添加新条目吗?(这比将它添加到 25 台机器要好得多,但仍然......)
你有什么建议?
我在 Windows 7 上运行 IIS 7,并想设置通配符子域来测试使用子域来识别用户的 ASP.NET 多租户应用程序。我怎样才能做到这一点?
我正在从 BIND9 DNS 服务器提供服务的工作组迁移到基于 Windows Server 2008 R2 的 AD 域,我想继续使用 BIND 服务器,直到 AD 基础架构准备就绪。
在设置 AD 的过程中,通过 dcpromo,我收到一个警告,我应该确保我们当前的 DNS 服务器将 AD 域名委托给 AD 服务器。
假设我的 AD 域是 mydomain.lan,而我的常规 BIND 域是 example.com。我将我的 BIND 服务器设置为 lan. 的权威,但想委托 mydomain.lan。到 AD 服务器的 IP。
我的named.conf.local包含:
zone "lan" {
type master;
file "zone.lan";
};
Run Code Online (Sandbox Code Playgroud)
而zone.lan包含:
$ORIGIN lan.
$TTL 1H ; 1 hour
@ IN SOA dns.example.com. hostmaster.example.com. (
201008137 ; serial
28800 ; refresh (8 hours)
14400 ; retry (4 hours) …Run Code Online (Sandbox Code Playgroud) 好吧,我不得不承认我对 DNS 的工作方式感到困惑。我一直只是添加东西直到它们起作用,现在是时候了解它们是如何工作的了。
所以让我感到困惑的一件事是,我可以在两个地方进行记录。我有一个机架空间云服务器的帐户。然后是我注册域的地方。但两者都允许我编辑 DNS 记录。
我应该在两个地方做所有事情还是一个比另一个更好,或者我错过了重点?
子域也让我感到困惑。我希望能够拥有一个通配符子域(我过去曾这样做过。)我只是不喜欢每次需要新子域时添加 cname 记录或 A 记录的想法。
然后我读了这个,它说:
RFC 1034 中指定了通配符何时匹配的确切规则,但这些规则既不直观也不明确指定。这导致了使用时不兼容的实现和意外结果。
domain-name-system domain subdomain nameserver domain-registration
subdomain ×10
domain ×2
lets-encrypt ×2
wildcard ×2
bind ×1
cname-record ×1
delegation ×1
dns-zone ×1
haproxy ×1
hosts ×1
iis ×1
linux ×1
nameserver ×1
nginx ×1
openwrt ×1
routing ×1
synology ×1
tomcat ×1
vpn ×1