สภาพแวดล้อมของเรามีเซิร์ฟเวอร์ชื่อดังนี้:
ผลิตภัณฑ์-app-01
ผลิตภัณฑ์-app-02
ทดสอบแอป-01
ทดสอบแอป-02
ฉันเคยใช้ sudo hostnamectl set-hostname ทดสอบแอป-02 บนแต่ละเซิร์ฟเวอร์ (เปลี่ยนชื่อให้เหมาะสมในแต่ละครั้ง) เพื่อตั้งชื่อที่ปรากฏในเทอร์มินัล ตอนนี้ฉันต้องการใช้ชื่อเดียวกันใน Apache เพื่อระบุว่าเซิร์ฟเวอร์ใดตอบสนองคำขอเว็บโดยดูที่ส่วนหัว HTTP
ภายในอาปาเช่ /etc/apache2/sites-enabled/000-default.conf ไฟล์ที่ฉันใส่:
ส่วนหัวตั้งค่า X-Server: test-app-02
อย่างไรก็ตาม ฉันต้องทำการเปลี่ยนแปลงเดียวกันในสองแห่งทุกครั้ง เครื่องของเราถูกโคลน ดังนั้นคงการตั้งค่าไว้จากเครื่องหนึ่งไปยังอีกเครื่องหนึ่ง ฉันต้องการที่จะสามารถใช้ได้เท่านั้น sudo hostnamectl set-hostname ทดสอบแอป-02 และให้การเปลี่ยนแปลงนั้นมีผลใน Apache ด้วย (หลังจากรีสตาร์ทอาจเป็นไปได้) อย่างไรก็ตาม ดูเหมือนว่า Apache จะไม่สามารถเข้าถึงข้อมูลนั้นได้
ฉันลองตั้งค่า ชื่อโฮสต์ เป็นตัวแปรสภาพแวดล้อม แต่ฉันไม่สามารถทำให้ Apache ใช้งานได้ (ส่วนหัวตั้งค่าเซิร์ฟเวอร์ X: "%{env:HOSTNAME}", ส่วนหัวตั้งค่าเซิร์ฟเวอร์ X: "%{HOSTNAME}e"ฯลฯ) รับอย่างใดอย่างหนึ่ง X-เซิร์ฟเวอร์: หรือ X-เซิร์ฟเวอร์: (โมฆะ) ในส่วนหัวทุกครั้ง นอกจากนี้ยังดูเหมือนว่าฟังก์ชั่นอื่น ๆ เช่น ชื่อโฮสต์ (ซึ่งมีอยู่ในเทอร์มินัล) ไม่พร้อมใช้งานใน Apache .conf ไฟล์.
มีวิธีใดบ้างที่จะทำการเปลี่ยนแปลงนี้ในที่เดียวและมีผลในทั้งสองที่