文章

443端口被占用,cloudflare实现非标准端口的代理,以实现域名不加端口号的访问

443端口被占用,但是又不想换这个服务的端口,可以利用cloudflare代理来实现域名不加端口访问

1.域名要托管在cloudflare ,然后域名解析到你的服务器IP,打开橙色小云朵

微信截图_20240118170946.webp比如你nginx上启动一个8443端口的代理,配置如下:

server {
  # 如果有资源,建议使用 https + http2,配合按需加载可以获得更好的体验
  listen 8443 ssl http2;
  server_name  test.example.xyz;

  gzip on;
  gzip_min_length 1k;
  gzip_comp_level 9;
  gzip_buffers 16 8k;
  gzip_http_version 1.1;
  gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
  gzip_vary on;
  gzip_disable "MSIE [1-6]\.";

  # 证书的公私钥
  ssl_certificate /etc/nginx/ssl/cf-example.xyz.pem;
  ssl_certificate_key /etc/nginx/ssl/cf-example.xyz.key;

  ssl_protocols TLSv1.2 TLSv1.3; # 启用TLS v1.2和v1.3
  ssl_prefer_server_ciphers on;
  ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
  ssl_ecdh_curve secp384r1; # 使用更强的ECDH曲线
  ssl_session_cache shared:SSL:10m;
  ssl_session_tickets off; # 关闭SSL会话票据

  #  location / {
        # 用于配合 browserHistory使用
  #     try_files $uri $uri/index.html /index.html;

  #}
  location / {
      proxy_pass http://localhost:1234/;
      proxy_set_header   X-Forwarded-Proto $scheme;
      proxy_set_header   Host              $http_host;
      proxy_set_header   X-Real-IP         $remote_addr;
  }
}

ssl证书可以用cf

2.在cloudflare 的规则里设置流量目标端口

origin_rules.webp比如我nginx设置的8443,在这里选择自定义筛选表达式—— 主机名 等于 <填写你的主机名>

然后目标端口填写8443,保存即可。

这样就可以通过test.example.xyz不加端口访问你部署的服务了,但是你的网站用不了CF的加速了。

顺便提一下,cloudflare开启小云朵后支持的目标端口

Cloudflare 支持的 HTTP 端口

  • 80

  • 8080

  • 8880

  • 2052

  • 2082

  • 2086

  • 2095

Cloudflare 支持的 HTTPS 端口

  • 443

  • 2053

  • 2083

  • 2087

  • 2096

  • 8443

Cloudflare 支持的端口,但是禁用缓存,意思是你的网站没有加速功能了

许可协议:  CC BY 4.0