Haproxy
前端部分中的 Haproxy 未知關鍵字綁定 *:80
我使用以下命令從原始碼編譯了 Haproxy LTS 2.2 版本:
make TARGET=linux-glibc USE_PCRE=1 USE_OPENSSL=1 USE_ZLIB=1 USE_CRYPT_H=1 USE_LIBCRYPT=1
編譯過程中沒有錯誤。這是我的 Haproxy 配置:
global log 127.0.0.1 local2 chroot /var/lib/haproxy pidfile /var/run/haproxy.pid maxconn 4000 user haproxy group haproxy daemon # turn on stats unix socket stats socket /var/lib/haproxy/stats defaults mode http log global option httplog option dontlognull option http-server-close option forwardfor except 127.0.0.0/8 option redispatch retries 3 timeout http-request 10s timeout queue 1m timeout connect 10s timeout client 1m timeout server 1m timeout http-keep-alive 10s timeout check 10s maxconn 3000 frontend http-in bind 192.168.123.40:80 acl gerrit hdr(host) -i gerrit.example.local acl jenkins hdr(host) -i jenkins.example.local use_backend gerrit if gerrit use_backend jenkins if jenkins backend gerrit server gerrit 127.0.0.1:8080 backend jenkins server jenkins 127.0.0.1:8081
當我使用
haproxy -c -q -V -f /etc/haproxy/haproxy.cfg
命令檢查配置時,出現以下錯誤:[NOTICE] 226/130914 (35193) : haproxy version is 2.2.2 [NOTICE] 226/130914 (35193) : path to executable is /usr/sbin/haproxy [ALERT] 226/130914 (35193) : parsing [/etc/haproxy/haproxy.cfg:33] : unknown keyword 'bind 192.168.123.40:80' in 'frontend' section [ALERT] 226/130914 (35193) : Error(s) found in configuration file : /etc/haproxy/haproxy.cfg [ALERT] 226/130914 (35193) : Fatal errors found in configuration.
我檢查了文件,它允許
bind
在前端部分使用關鍵字 http://cbonte.github.io/haproxy-dconv/2.2/configuration.html#bind (按字母順序排序的關鍵字參考)當我在前端部分註釋掉
bind
關鍵字時,實現了更多的mindfuck。然後錯誤說:
[WARNING] 226/132456 (36642) : config : frontend 'http-in' has no 'bind' directive. Please declare it as a backend if this was intended.
🤷
這看起來像您使用了其他一些看起來像空格的空白字元,但實際上不是正常的空格字元,在
bind
and之間192.168.123.40:80
。嘗試再次輸入文本,但這次使用正常空格(U+0020,ASCII 32)。