ฉันใช้งานสองบริการหลังเซิร์ฟเวอร์ Apache: Jenkins (พอร์ต 8080) และ SonarQube (พอร์ต 9000)
config apache ของฉันดูเหมือนว่า:
<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'