Score:0

มีวิธีกำหนดโฮสต์เสมือน Apache 2 ด้วย ServerName บางส่วนหรือไม่

ธง cn

ฉันมีเครื่องมือที่สร้างบล็อกการกำหนดค่า Apache 2 ฉันต้องการให้สิ่งที่สร้างขึ้นเป็นอิสระจากชื่อเซิร์ฟเวอร์จริง แต่ไม่จำเป็นต้องเรียกใช้/แยกวิเคราะห์การกำหนดค่า Apache ของเครื่องเป้าหมาย

กล่าวอีกนัยหนึ่ง สิ่งที่ฉันต้องการคือสิ่งนี้:

<VirtualHost *>
   ServerName foobar    // <-- no top level domain
   ...
</VirtualHost>

ดูเหมือนว่าจากการอ่านเอกสาร เช่น ฟิลด์ชื่อเซิร์ฟเวอร์จะต้องเป็นชื่อโดเมนแบบเต็มเสมอ ดังนั้นจึงไม่สามารถเขียนบล็อก vhost โดยเนื้อแท้โดยไม่ทราบ FQDN ของเซิร์ฟเวอร์เป้าหมาย เป็นเรื่องจริงหรือมีวิธีแก้ปัญหาบางอย่างหรือไม่?

Score:1
ธง in

ใช่ ชื่อเซิร์ฟเวอร์ จะต้องเป็นการระบุเซิร์ฟเวอร์จริง แต่สามารถเป็นที่อยู่ IP ได้เช่นกัน นามแฝงเซิร์ฟเวอร์ ในทางกลับกันสามารถมีสัญลักษณ์แทนได้ เอกสาร กล่าวถึงเรื่องนี้

แต่ก็ยังบอกว่าไม่จำเป็น

หากไม่ได้ระบุชื่อเซิร์ฟเวอร์ เซิร์ฟเวอร์จะพยายามอนุมานชื่อโฮสต์ที่มองเห็นได้ของไคลเอ็นต์โดยขอชื่อโฮสต์ระบบจากระบบปฏิบัติการก่อน และหากล้มเหลว จะทำการค้นหาแบบย้อนกลับสำหรับที่อยู่ IP ที่มีอยู่ในระบบ

Score:0
ธง ar
bob

ไม่ ชื่อเซิร์ฟเวอร์ หรือ นามแฝงเซิร์ฟเวอร์ เป็นคำสั่งที่จำเป็นในบล็อก VirtualHost

คุณสามารถละเว้นได้

คู่มือจะอธิบายเมื่อคุณทำเช่นนั้น:

ถ้าไม่ ชื่อเซิร์ฟเวอร์ ถูกระบุ เซิร์ฟเวอร์จะพยายามอนุมานชื่อโฮสต์ที่มองเห็นได้ของไคลเอ็นต์โดยขอชื่อโฮสต์ระบบจากระบบปฏิบัติการก่อน และหากล้มเหลว จะทำการค้นหาแบบย้อนกลับสำหรับที่อยู่ IP ที่มีอยู่ในระบบ

ซึ่งอาจเป็นสิ่งที่คุณต้องการ

นอกจากนี้ ในทางปฏิบัติ คำสั่งเหล่านั้นจะยอมรับสตริงเกือบทุกชนิด ...
บอกได้คำเดียวว่า โลคัลโฮสต์ หรือ ทดสอบ และ ตัวอย่าง จะทำงานเช่นเดียวกับสิ่งที่ดูเหมือน FQDN มากกว่า แต่ไม่ใช่ชื่อ DNS ที่ใช้งานได้จริง เช่น there.is.no.tld.named.serverfault การใช้บางอย่างเช่นนี้อาจทำให้มีคำเตือนการเริ่มต้นระบบในบันทึกข้อผิดพลาด (ซึ่งคุณสามารถหลีกเลี่ยงได้โดยเพิ่มสตริงนั้นเข้าไป / etc / โฮสต์) และอาจส่งผลให้เกิดสถานการณ์ที่ Apache httd ไม่สามารถแยกแยะบล็อก VirtualHost ของคุณจากบล็อกอื่นๆ ที่มีอยู่ และการตั้งค่าของคุณจะไม่มีผล https://httpd.apache.org/docs/2.4/vhosts/details.html

cn flag
ขอบคุณ แต่นั่นยังไม่ใช่สิ่งที่ฉันตามหา มันเหมือนกับ `ServerName foo.${HOSTNAME}` ซึ่งจะใช้งานได้ หาก HOSTNAME env var ถูกตั้งค่าสำหรับเซิร์ฟเวอร์ Apache จริง ๆ น่าเสียดายที่ดูเหมือนว่าระบบ systemd สมัยใหม่จะให้สภาพแวดล้อมที่สะอาดมากโดยไม่มีค่านี้ และไม่มีทางที่จะทำให้แนวคิดของ Apache เกี่ยวกับชื่อโฮสต์เป็นตัวแปรได้ การละเว้นคำสั่งจะไม่ทำงานเพราะเป้าหมายที่นี่คือการมีส่วนย่อยของการกำหนดค่าหลายรายการที่เป็น _independent_ ของชื่อโฮสต์ของเครื่อง และเป็นการดีที่ทำงานร่วมกับการกำหนดค่า Apache มาตรฐาน

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา