สภาพแวดล้อมของเรามีเซิร์ฟเวอร์ชื่อดังนี้:
ผลิตภัณฑ์-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
ไฟล์.
มีวิธีใดบ้างที่จะทำการเปลี่ยนแปลงนี้ในที่เดียวและมีผลในทั้งสองที่