मैं वर्तमान में वेबसाइटों के एक जोड़े के लिए एक रिवर्स प्रॉक्सी के रूप में कार्य करने के लिए एक HAproxy मशीन स्थापित कर रहा हूं। चूंकि विभिन्न मशीनें शारीरिक रूप से जुड़ी नहीं हैं, मैं मशीनों के बीच वीपीएन बनाने के लिए ओपनवीपीएन का उपयोग कर रहा हूं।
तकनीकी रूप से, सब कुछ काम कर रहा है। हालाँकि, मेरी समस्या यह है कि अनुरोध है कि मैं प्रॉक्सी के माध्यम से पाइप बहुत धीमी है। मुझे अंततः पूर्ण प्रतिक्रिया मिलती है, लेकिन जेनकिंस डैशबोर्ड की तरह कुछ प्राप्त करने में 5 मिनट तक का समय लगता है।
मैंने NGINX के माध्यम से एक साधारण स्टेटिक HTML पेज की कोशिश की और साथ ही कुछ REST API को भी लागू किया - परिणाम हमेशा एक जैसा होता है: मुझे अंततः डेटा मिलता है लेकिन यह एक हास्यास्पद राशि लेता है।
यहाँ मेरा HAproxy config है:
global
log /var/run/log local0 info
log /var/run/log local0 notice
daemon
maxconn 8000
tune.ssl.default-dh-param 2048
user nobody
group nobody
defaults
log global
option httplog
option dontlognull
mode http
timeout connect 5s
timeout client 1min
timeout server 1min
option forwardfor
option http-server-close
errorfile 400 /usr/local/etc/haproxy/errorfiles/400.http
errorfile 403 /usr/local/etc/haproxy/errorfiles/403.http
errorfile 408 /usr/local/etc/haproxy/errorfiles/408.http
errorfile 500 /usr/local/etc/haproxy/errorfiles/500.http
errorfile 502 /usr/local/etc/haproxy/errorfiles/502.http
errorfile 503 /usr/local/etc/haproxy/errorfiles/503.http
errorfile 504 /usr/local/etc/haproxy/errorfiles/504.http
frontend http-in
bind *:80
bind *:443 ssl crt /usr/local/etc/haproxy/certs/foo.my.org.pem
mode http
use_backend jenkins if { hdr(host) -i foo.my.org }
use_backend test if { hdr(host) -i bar.my.org }
default_backend test
backend jenkins
server jenkins1 <vpn_ip>:8180
mode http
http-request set-header X-Forwarded-Port %[dst_port]
http-request add-header X-Forwarded-Proto https if { ssl_fc }
reqrep ^([^\ :]*)\ /(.*) \1\ /\2
acl response-is-redirect res.hdr(Location) -m found
rspirep ^Location:\ (http)://<vpn_ip>:8180/(.*) Location:\ https://foo.my.org:443/\2 if response-is-redirect
backend test
server web01 <vpn_ip>:80
अतिरिक्त जानकारी:
- सभी शामिल मशीनें डेटा केंद्रों में स्थित हैं और 1G / 1G इंटरनेट कनेक्शन की सुविधा प्रदान करती हैं
- सभी मशीनें FreeBSD 11 64-Bit चलाती हैं
- सभी मशीनों पर OpenVPN संस्करण 2.4.4
- HAproxy संस्करण 1.7.9
- OpenVPN टीसीपी मोड में चलता है
- जेनकिंस के लिए HAproxy बैकएंड कॉन्फिगर को जेनकिंस डॉक्यूमेंट से प्रदान किया गया है, लेकिन जैसा कि उल्लेख किया गया है कि यह समस्या नंगे स्थिर HTML सामग्री वेबसर्वर और REST API वेब सेवा के साथ मौजूद है।
और जेनकिंस साइट तक पहुँचने पर यहाँ कुछ HAproxy लॉग हैं:
Feb 27 01:32:24 hostname haproxy[5539]: 213.144.130.227:60243 [27/Feb/2018:01:32:24.093] http-in~ jenkins/jenkins1 0/0/13/134/161 302 153 - - ---- 5/5/0/0/0 0/0 "GET /jenkins HTTP/1.1"
Feb 27 01:32:24 hostname haproxy[5539]: 213.144.130.227:19404 [27/Feb/2018:01:32:24.255] http-in~ jenkins/jenkins1 0/0/25/174/212 200 4492 - - ---- 5/5/0/0/0 0/0 "GET /jenkins/ HTTP/1.1"
Feb 27 01:32:25 hostname haproxy[5539]: 213.144.130.227:16321 [27/Feb/2018:01:32:25.330] http-in~ jenkins/jenkins1 0/0/13/30/54 200 8560 - - ---- 6/6/4/4/0 0/0 "GET /jenkins/static/aeed77bb/scripts/yui/datasource/datasource-min.js HTTP/1.1"
Feb 27 01:32:25 hostname haproxy[5539]: 213.144.130.227:54637 [27/Feb/2018:01:32:25.330] http-in~ jenkins/jenkins1 0/0/27/29/58 200 7585 - - ---- 6/6/3/4/0 0/0 "GET /jenkins/static/aeed77bb/scripts/yui/autocomplete/autocomplete-min.js HTTP/1.1"Feb 27 01:32:25 hostname haproxy[5539]: 213.144.130.227:59247 [27/Feb/2018:01:32:25.361] http-in~ jenkins/jenkins1 0/0/25/16/51 200 9602 - - ---- 6/6/2/3/0 0/0 "GET /jenkins/static/aeed77bb/jsbundles/page-init.js HTTP/1.1"
Feb 27 01:32:25 hostname haproxy[5539]: 213.144.130.227:40637 [27/Feb/2018:01:32:25.332] http-in~ jenkins/jenkins1 0/0/38/18/81 200 16212 - - ---- 6/6/1/1/0 0/0 "GET /jenkins/static/aeed77bb/scripts/yui/menu/menu-min.js HTTP/1.1"
Feb 27 01:32:25 hostname haproxy[5539]: 213.144.130.227:10976 [27/Feb/2018:01:32:25.333] http-in~ jenkins/jenkins1 0/0/37/30/95 200 29110 - - ---- 6/6/0/0/0 0/0 "GET /jenkins/static/aeed77bb/scripts/hudson-behavior.js HTTP/1.1"
मुझे लॉग फ़ाइलों में और कुछ नहीं दिखता है। कोई त्रुटि या समान नहीं।
क्या यह ओपनवीपीएन के कारण हो सकता है?
संपादित 1: इस बीच में मैंने सीधे तौर पर HAproxy कॉन्फ़िगरेशन में वेब सर्वर के सार्वजनिक आईपी पते का उपयोग करके OpenVPN के बिना यह परीक्षण किया। परिणाम ठीक वैसा ही है।