当前位置: 首页 > 知识库问答 >
问题:

使用Cloudflare和nginx的子域代理传递

卢永寿
2023-03-14

我的a域是在CloudFlare的免费工具后面管理的。我想添加一个名为“test”的子域,但我希望它指向在我的服务器端口8183上运行的第二个webserver。在Cloudflare DNS portal中,我有一个“test.example.com”的A记录,它指向我的WebServer的IP地址,该地址也被代理以隐藏我的WebServer的实际IP地址。所有流量都通过HTTPS路由,证书也由Cloudflare提供。

我的nginx default.conf:

# Redirect all traffic to HTTPS/443/SSL
server {
    server_name example.com *.example.com;

    listen 80;

    return 301 https://$host$request_uri;
}

# example.com
server {
    server_name example.com;

    listen 443 ssl;

    index index.php index.html;

    ssl_certificate /etc/ssl/origincert.pem;
    ssl_certificate_key /etc/ssl/privkey.key;

    error_log  /var/log/nginx/error.log;
    access_log /var/log/nginx/access.log;
    root /website;

    location ~ \.php$ {
        autoindex on;
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass php:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
}

# test.example.com -> proxy pass to 8183
server {
    server_name test.example.com;

    listen 443 ssl;

    ssl_certificate /etc/ssl/origincert.pem;
    ssl_certificate_key /etc/ssl/privkey.key;

    location / {
        proxy_pass http://MY_SERVER_IP_ADDRESS:8183;
    }
}

但是,当我导航到https://test.example.comhttp时,我只需重新路由到https://example.com。我的服务器上安装了原始服务器证书,安装并使用了example.com、*.example.com和test.example.com

共有1个答案

阮阳曦
2023-03-14

这很可能是DNS记录的问题。检查它们并确保没有类似*.example.com->example.com的记录,确保test子域直接指向服务器的IP地址,与example.com相同。

因此,如果您有example.com->1.2.3.4,请确保您也有test.example.com->1.2.3.4.,而不是test.example.com->example.com

 类似资料:
  • 问题内容: 我要转发的所有请求: www.domain.com/ api / whaterver / comes / next– api .domain.com / whatever / comes / next 原因是避免www.domain.com的浏览器CORS请求api.domain.com 可能值得一提的是,nginx在Docker容器中运行。 我试图用下面的位置块来完成,但是失败了:

  • 本文向大家介绍vue.js使用代理和使用Nginx来解决跨域的问题,包括了vue.js使用代理和使用Nginx来解决跨域的问题的使用技巧和注意事项,需要的朋友参考一下 使用Nginx 反向代理解决跨域问题(vue.js使用代理去掉vue.js因为跨域而触发的options请求) 我们的项目还是需要node.js作为容器的 一、Windows 下安装Nginx (官网下载稳定版http://ngin

  • 我知道了。htaccess阻止所有用户代理,只允许一个我需要的 允许cloudflare访问如何允许不使用(Mozilla)这就是我得到的用户代理 Mozilla/5.0(兼容;cloudflare AlwaysOnline/1.0;http://www.cloudflare.com/always-online)

  • 我要做的是,当用户访问时,应该将他们代理到运行在端口80上的apache。 当我访问时,我会得到正确的结果(index.php)。当我访问时,我会得到正确的结果(404来自apache)。当我访问时,我会得到正确的结果(404来自nginx)。当我访问时,我会得到正确的结果(404来自apache)。 问题是当我访问时。我得到一个301响应,并被重定向到(注意后面的斜杠,当然还有'localhos

  • 问题内容: 我的nginx服务器实际上是使用以下简单的代理来代理节点后端(侦听端口3000): 其中上游_1是我在nginx.conf中定义的节点群集(在端口3000上)。 我将不得不通过http连接添加SSL,所以我有以下问题:我是否只需要配置nginx来启用ssl?并且它将自动“解密”请求并将未解密的请求传递给能够正常处理的Node?还是我需要将Nodejs配置为也支持ssl? 问题答案: 如

  • 那么... 我在端口8080的服务器上运行了一个节点应用程序,我正在尝试使用NGINX和CloudFlare使其能够通过SSL工作。请注意以下几点。。。 我的主机正在运行Ubuntu 16.04 LTS ...我以前的NGINX配置看起来像。。。 ...现在看起来。。。 ...我遵循了这里的例子和它在这里提供的链接,我怀疑上面的一切都是必需的(我是一个极简主义者)。每当我运行时,我仍然会在未指定s