在Nginx上使用VPS时在多个子域上启用cloudflare?

时间:2019-08-15 11:56:33

标签: nginx cloudflare

有一台配置了nginx'om的VPS机器,其中有10个站点正在旋转结构

tester.example.com
api-one.tester.example.com
api-two.tester.example.com
api-3.tester.example.com
api-4.tester.example.com
api-5.tester.example.com
api-6.tester.example.com

中心站点在单独的主机上旋转

在nginx中,我将默认站点tester.example.com配置为使用cloudflare服务中的ssl

    server {
    listen 80 default_server;
    listen [::]:80 default_server;

    server_name tester.example.com www.tester.example.com;
    return 302 https://$server_name$request_uri;
}


server {

  # SSL configuration

    listen 443 ssl http2 default_server;
  listen [::]:443 ssl http2 default_server;
  ssl        on;
  ssl_certificate         /etc/ssl/certs/cert.pem;
  ssl_certificate_key     /etc/ssl/private/private.pem;
  ssl_client_certificate /etc/ssl/certs/cloudflare.crt;
  ssl_verify_client on;

  server_name tester.example.com www.tester.example.com;

  root /var/server/site/;
  index index.html index.htm index.nginx-debian.html;


  location / {
       # try_files $uri $uri/ =404;
        proxy_pass         http://localhost:8880;
        proxy_http_version 1.1;
        proxy_set_header   Upgrade $http_upgrade;
        proxy_set_header   Connection keep-alive;
        proxy_set_header   Host $host;
        proxy_cache_bypass $http_upgrade;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Proto $scheme;
   }
}

不带https-使用常规ip:端口,开放通过所有服务

如何进行api-one.tester.example.com配置等,以便它们也可以通过ssl打开?

我试图在子域配置(支持cloudflare的8443)中更改端口,但没有得到期望的结果

.....
listen 8443 ssl http2;
listen [::]:8443 ssl http2;
ssl        on;
.....

1 个答案:

答案 0 :(得分:0)

除非使用* .wildcard,否则通常必须在Cloudflare DNS设置中分别设置子域,但是我认为它们不再支持。

如果您希望Cloudflare路由https / ssl上的所有子域,则Cloudflare仪表板上的选项>加密> 始终使用HTTPS 。在这种情况下,如果您的域通过纯http访问,则会重定向到https。当然,这要求您的服务器设置为支持域的SSL(与Cloudflare无关),或者您正在Crypto> SSL设置下使用“ Flexible”,这允许Cloudflare通过https将网站提供给客户端,尽管数据从服务器到Cloudflare的服务都没有SSL。