我正在尝试配置我的 Nginx 服务器作为我的主要负载均衡器。我已经使用 certbot 完成了必要的软件包安装,但当我尝试配置 haproxy.cfg 文件时,问题出现了。
所有默认的 haproxy 配置均保持不变,因此我添加了这些行
frontend www-https-frontend
bind *:80
bind *:443 ssl crt /etc/letsencrypt/archive/www.example.tech/fullchain.pem
http-request redirect scheme https unless { ssl_fc }
http-request set-header X-Forwarded-Proto https
default_backend www-backend
backend www-backend
balance roundrobin
server web-01 54.90.15.228:80 check
server web-02 35.153.66.157:80 check
但是当我运行 sudo haproxy -c -f /etc/haproxy/haproxy.cfg 时,出现此错误:
[NOTICE] (70084) : haproxy version is 2.5.14-1ppa1~focal
[NOTICE] (70084) : path to executable is /usr/sbin/haproxy
[ALERT] (70084) : config : parsing [/etc/haproxy/haproxy.cfg:39] : 'bind *:443' : unable to stat SSL certificate from file '/etc/letsencrypt/archive/www.codingbro.tech/fullchain.pem' : No such file or directory.
[ALERT] (70084) : config : Error(s) found in configuration file : /etc/haproxy/haproxy.cfg
[ALERT] (70084) : config : Fatal errors found in configuration.
生成证书时,他们提供了完整链的确切路径/etc/letsencrypt/archive/www.example.tech/fullchain.pem
。任何帮助将非常感激
答案1
一般来说,您不应该使用存档目录。当前的 ssl 文件是符号链接的,因此应该使用它。对于 nginx,我认为 cfg 语句是:
ssl_certificate /etc/letsencrypt/live/www.example.tech/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.example.tech/privkey.pem
恐怕我不知道 haproxy 的等价物是什么。