标签: subdomain

通过 htaccess/apache 将所有对子域的请求代理到一个 ip

假设我有以下子域及其自己的文档根等:

monad2.mysite.com
Run Code Online (Sandbox Code Playgroud)

我希望所有请求都代理到一个 IP(例如193.159.3.129),但它们必须通过服务器mysite.com(假设monad2在同一台服务器上)。

我有以下(htaccess)配置,它适用于子域,但无法代理任何其他请求......

Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*) http://193.159.3.129/$1 [P]
Run Code Online (Sandbox Code Playgroud)

我的问题是,虽然它确实适用于http://monad2.mysite.com/a.php(url 保持不变),但它不适用于(urlhttp://monad2.mysite.com/a/b转换为http://193.159.3.129/a/b)之类的请求。请注意,后一个地址显示了代理服务器的目录列表,这是正确的,只是子域更改为 ip。

另外,我认为这个系统肯定不能用于 HTTPS 请求,对吗?

编辑:经过更多的故障排除后,我确切地找到了问题发生的时间。每当我尝试访问没有最后一个斜杠的目录时,代理就会失败,我最终会得到一个 IP。一些例子:

Original                        | Result
--------------------------------+--------------------------------
http://monad2.mysite.com        | http://monad2.mysite.com
http://monad2.mysite.com/a/     | http://monad2.mysite.com/a/
http://monad2.mysite.com/a      | http://193.159.3.129/a/           <- !
http://monad2.mysite.com/a.php  | http://monad2.mysite.com/a.php
Run Code Online (Sandbox Code Playgroud)

proxy ip .htaccess subdomain apache-2.2

5
推荐指数
1
解决办法
6253
查看次数

主机名或子域?

我明白,在“webmail.chemistry.iit.edu”的方向上,“chemistry”是一个子域,“webmail”是主机名。那么,根据 Google 的文档,为什么在“mail.google.com”中,“mail”是一个子域?将主机名放在域的左侧不是强制性的吗?

hostname subdomain

5
推荐指数
1
解决办法
1万
查看次数

使用 Nginx vhost 的 server_name 中的正则表达式

我想用 Nginx 做一些事情。假设我有几个用户和一个子域,每个用户在/home/dev/sites/USER_ID. 我想USER_ID.dev.example.com指向那个目录。

我试过制作一个 vhost 文件如下:

server {
    listen   80;
    server_name ~^(?<site_id>)$.dev.example.com;
    root   /home/dev/sites/$site_id;
    index  index.php;

    location / {
        try_files $uri $uri/ /index.php?$uri&$args;
    }

    location ~ \.php$ {
        try_files $uri =404;
        include /etc/nginx/fastcgi_params;
        fastcgi_pass    127.0.0.1:9000;
        fastcgi_index   index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,所有发生的事情是它显示了我的 PhpMyAdmin 安装(显然另一个虚拟主机指向它)。有人能告诉我我做错了什么吗?我有一种感觉,它只是糟糕的 Regex,但我不确定。

nginx regex subdomain virtualhost

5
推荐指数
1
解决办法
1万
查看次数

Pingdom 错误:在分析子域时“在父级上找不到委派”

我有一个子域dramarsarin.crimsonandcyan.com,我想指向另一台服务器。我在主机 'dramarsarin' 的 crimsonandcyan.com 的区域文件中添加了一条 A 记录,并将其指向服务器的 IP 地址。

现在,当我在 pingdom.com 上为我的子域进行 dns 检查时,我得到以下信息:

No delegation could be found at the parent, making your zone unreachable from the Internet.
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?我确实看到有时解析子域需要很长时间。这就是为什么我认为 pingdom.com 的分析非常有效。

domain-name-system a-record subdomain

5
推荐指数
1
解决办法
7632
查看次数

无法访问子域:DNS_PROBE_FINISHED_NXDOMAIN

我无法访问子域。

例如http://electricien.synerciel.fr正在工作。

但是,对于子子域http://electricite-lemonnier.electricien.synerciel.fr/返回DNS_PROBE_FINISHED_NXDOMAIN

这是 DNS 配置:

在此处输入图片说明

我不知道发生了什么。我找不到任何有效资源来解释错误消息的含义。

domain-name-system domain subdomain

5
推荐指数
0
解决办法
3566
查看次数

如何使用 nginx 和 proxy_pass 为每个子域创建子域

我目前在我的服务器上设置了 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)

nginx reverse-proxy subdomain

5
推荐指数
1
解决办法
3899
查看次数

如何将域名映射到谷歌云平台中的负载均衡器?

我已经在谷歌云平台成功设置了负载均衡器

在此处输入图片说明

如果我使用如图所示的 IP,我可以测试并验证设置是否按我的计划工作。

现在我想将域名映射到 IP。我想用www.mycompany.com. 我已经创造了一个A纪录,我的DNS指向www1.2.3.4。但是域名给出了 404 错误。

在此处输入图片说明

我确定我需要将这个新域名与 IP 地址相关联。

没有明显的地方可以在load balanceingexternal IP addresses屏幕上进行。

我可以在哪里做?

load-balancing subdomain domain-name google-cloud-platform

5
推荐指数
1
解决办法
5978
查看次数

HAProxy 子域和路径重定向

我是 StackExchange 的新手,正在尝试寻找一些有关配置问题的帮助。我需要为 HAProxy 创建一个配置,它允许我将 Tomcat 应用程序上下文路径动态代理到子域。子域/路径不能硬编码,应设置为变量。我已经查看了整个站点中建议的其他内容,但没有一个涉及这个特定问题。到目前为止,我已经从各种现有建议中汇总了此配置。

这就是我需要的。

  • 用户请求 -> http://site1.domain.com/path
  • 重定向到 https
  • HAProxy 然后使用 URL 向其后端池发出请求 http://<ip>:8080/site1/path

当 tomcat 应用程序返回指向资产的链接时,它们也会有一个需要重定向的路径。

  • 网站退货 https://site1.example.com/site1/image.jpg
  • 如果存在,从路径中删除第一个 site1。 https://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)

configuration tomcat subdomain haproxy

5
推荐指数
0
解决办法
1302
查看次数

嵌套通配符子域的 LetsEncrypt 证书

我已为我的域生成 Lets Encrypt通配符证书*.domain.com

我认为该证书对于任何嵌套子域都有效*.*.domain.com,例如it.*.domain.comfr.*.domain.com。但浏览器给我错误,该通配符证书是为 颁发的domain.com,而不是为*.domain.com。我尝试*.*.domain.com使用 CertBot 颁发新证书,但出现错误(不允许使用多个通配符)。

是否可以实现此目的,或者我是否必须为每个第一级子域手动颁发通配符证书?

wildcard subdomain lets-encrypt

5
推荐指数
1
解决办法
2万
查看次数

OpenWRT - 如何将主机名的所有子域重定向到同一主机,以便可以进行反向代理?

我有一个 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 界面)中的设置,没有发现任何内容能够实现此目的。

有任何想法吗?

domain-name-system routing reverse-proxy subdomain openwrt

5
推荐指数
1
解决办法
7770
查看次数