Debian 在 HTTPS 上不返回 200 ok

Debian 在 HTTPS 上不返回 200 ok

我遇到了一个问题,我正在为我的负载均衡器运行健康检查,健康检查使用 HTTP、HTTPS 或 HTTP/2 协议,每个协议都需要 HTTP 200(OK)响应代码

我运行了以下命令 https://我的 IP:443 并且似乎没有服务器回复该信息,因此似乎缺少一些我无法指出的配置

这是我运行 sudo netstat -plnt 得到的响应

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      775/sshd            
tcp6       0      0 :::80                   :::*                    LISTEN      761/apache2         
tcp6       0      0 :::22                   :::*                    LISTEN      775/sshd            
tcp6       0      0 :::443                  :::*                    LISTEN      761/apache2     

这是我运行 sudo ss -plnt 得到的响应

State      Recv-Q Send-Q                                                                              Local Address:Port                                                                                             Peer Address:Port              
LISTEN     0      128                                                                                             *:22                                                                                                          *:*                   
users:(("sshd",pid=775,fd=3))
LISTEN     0      128                                                                                            :::80                                                                                                         :::*                   
users:(("apache2",pid=832,fd=4),("apache2",pid=831,fd=4),("apache2",pid=830,fd=4),("apache2",pid=829,fd=4),("apache2",pid=828,fd=4),("apache2",pid=827,fd=4),("apache2",pid=761,fd=4))
LISTEN     0      128                                                                                            :::22                                                                                                         :::*                   
users:(("sshd",pid=775,fd=4))
LISTEN     0      128                                                                                            :::443                                                                                                        :::*                   
users:(("apache2",pid=832,fd=6),("apache2",pid=831,fd=6),("apache2",pid=830,fd=6),("apache2",pid=829,fd=6),("apache2",pid=828,fd=6),("apache2",pid=827,fd=6),("apache2",pid=761,fd=6))

答案1

为了实现此功能,应配置网络标签以及相应的 HTTP 和健康检查防火墙规则。

=> GCP 控制台 => 导航 => 网络 => VPC 网络 => 防火墙规则。注意现有的规则。也许缺少必要的规则。

基本规则

1.提供网络标签用于后端服务器。通常在创建模板 VM 映像时设置这些。尽管也可以相应地修改现有实例。

=> GCP Console => Navigation => Compute Engine => VM instances
=> Create (or Edit) 
  ... 
  Management, security, disks, networking, sole tenancy => 
    Networking => 
      Network tags = http-server 

2.创建规则以允许HTTP 流量到后端。

=> GCP Console => Navigation => Networking => VPC network => Firewall rules 
=> Create Firewall Rule 
  Name =                default-allow-http
  Network =             default
  Targets =             Specified target tags
  Target tags =         http-server
  Source filter =       IP Ranges
  Source IP ranges =    0.0.0.0/0   # from all networks
  Protocols and ports = Specified protocols and ports
    tcp = On, port 80
=> Create 

3.创建健康检查规则。健康检查确定平衡器的哪些实例可以接收新连接。对于 HTTP 负载平衡,对 LB 实例的健康检查探测来自范围130.211.0.0/2235.191.0.0/16

=> GCP Console => Navigation => Networking => VPC network => Firewall rules 
=> Create Firewall Rule 
  Name =                default-allow-health-check
  Network =             default
  Targets =             Specified target tags
  Target tags =         http-server
  Source filter =       IP Ranges
  Source IP ranges =    130.211.0.0/22 35.191.0.0/16 
  Protocols and ports = Specified protocols and ports
    tcp = On, port all      # all TCP ports, port=all is optional
=> Create 

=> GCP 控制台 => 导航 => 网络 => VPC 网络 => 防火墙规则。注意新创建的规则。

HTTP 和健康检查规则

相关内容