मैं एक अपाचे सर्वर के पीछे दो सेवाएं चला रहा हूं: जेनकिंस (पोर्ट 8080) और सोनारक्यूब (पोर्ट 9000)।
मेरा अपाचे विन्यास इस तरह दिखता है:
<VirtualHost *:80>
ServerName server
Redirect permanent / https://server.domain.com/
</VirtualHost>
<VirtualHost *:80>
ServerName server.domain.com
Redirect permanent / https://server.domain.com/
</VirtualHost>
<VirtualHost *:443>
ServerName server.domain.com
SSLEngine on
SSLCertificateFile /etc/ssl/certs/server.crt
SSLCertificateKeyFile /etc/ssl/private/server.key
ProxyPass /jenkins http://localhost:8080/jenkins nocanon
ProxyPassReverse /jenkins http://localhost:8080/jenkins
ProxyPassReverse /jenkins http://server.domain.com/jenkins
ProxyPassReverse /jenkins https://server.domain.com/jenkins
ProxyPass /sonar http://localhost:9000/sonar nocanon
ProxyPassReverse /sonar http://localhost:9000/sonar
AllowEncodedSlashes NoDecode
ProxyRequests Off
ProxyPreserveHost On
<Proxy http://localhost:8080/*>
Order deny,allow
Allow from all
</Proxy>
</VirtualHost>
लगता है कि सब कुछ ठीक काम कर रहा है, सिवाय इसके कि जेनकिंस इस संदेश के साथ शिकायत कर रहा है: ऐसा प्रतीत होता है कि आपका रिवर्स प्रॉक्सी सेट टूट गया है।
जब मैं जेनकिन्स द्वारा प्रदान ReverseProxySetupMonitor परीक्षण चलाते हैं , तो त्रुटि संदेश इंगित करता है कि रिवर्स प्रॉक्सी के साथ कुछ सही तरीके से सेट नहीं किया गया है, क्योंकि http को https के साथ प्रतिस्थापित नहीं किया जाता है:
$ curl -iLk -e https://server.domain.com/jenkins/manage https://server.domain.com/jenkins/administrativeMonitor/hudson.diagnosis.ReverseProxySetupMonitor/test
[...]
404 http://server.domain.com/jenkins/manage vs. https://server.domain.com/jenkins/manage
[...]
यह केवल सर्वर पर SSL सक्षम करने के बाद दिखाई दिया (जो अब स्व-हस्ताक्षरित प्रमाण पत्र का उपयोग कर रहा है)।
प्रश्न: मैं रिवर्स प्रॉक्सी सेटअप कैसे ठीक करूं ताकि जेनकिंस खुश हो? Apache config फाइल को कैसे बेहतर बनाया जाए, इसके टिप्स के लिए बोनस अंक।
मैंने पहले ही संबंधित दो प्रश्नों की जाँच कर ली है:
sudo a2enmod headers
, नहीं तो मुझे मिल जाताInvalid command 'RequestHeader'