ฉันจะสร้างโฮสต์เสมือนสำหรับพอร์ตต่าง ๆ บน Apache ได้อย่างไร


20

ฉันอยากให้อาปาเช่ทำเช่นนี้>

mydomain.com:80  --- opens var/www1
mydomain.com:81  --- opens var/ww2
mydomain.com:82  --- opens var/www3

ปัญหาคือฉันไม่รู้ว่าพอร์ตเหล่านั้นเปิดอยู่บน Linux (ฉันจะตรวจสอบได้อย่างไร)

และหากพวกเขาไม่ใช่ฉันจะเปิดพวกเขาในไฟร์วอลล์และรับ apache ฟัง?

ฉันพยายามทำสิ่งนี้

> iptables -A RH-Firewall-1-INPUT -m  NEW -m tcp -p tcp –dport 81 -j ACCEPT
iptables v1.3.5: Couldn't load match `NEW':/lib64/iptables/libipt_NEW.so: cannot open shared object file: No such file or directory

และฉันตรวจสอบพอร์ต ... ดูเหมือนว่า httpd กำลังฟัง ... แต่ฉันไม่ทราบสาเหตุที่ฉันไม่สามารถกด URL ของฉันได้

> netstat -tulpn | less
tcp        0      0 :::80       :::*      LISTEN      6840/httpd
tcp        0      0 :::81       :::*      LISTEN      6840/httpd
tcp        0      0 :::82       :::*      LISTEN      6840/httpd

คำตอบ:


39

หากต้องการขยายคำตอบของ Jeff คุณจะต้องมีสิ่งนี้ในการกำหนดค่า apache ของคุณ

Listen 80
Listen 81
Listen 82

# Listen for virtual host requests on all IP addresses
NameVirtualHost *:80

<VirtualHost *:80>
DocumentRoot /var/www1
ServerName www.example1.com
</VirtualHost>

NameVirtualHost *:81
<VirtualHost *:81>
DocumentRoot /var/www2
ServerName www.example2.org
</VirtualHost>


NameVirtualHost *:82
<VirtualHost *:82>
DocumentRoot /var/www3
ServerName www.example3.org
</VirtualHost>

ฉันทำอย่างนั้น ... แต่ก็ยังไม่มีความรัก
qodeninja

คุณสามารถเทลเน็ตไปยังพอร์ตเหล่านี้ในเครื่องและ / หรือจากระยะไกลได้หรือไม่?
sreimer

NameVirtualHostไม่มีผลเมื่อใช้กับ Apache 2.4
Vahid Amiri

ดูเหมือนว่า NameVirtualHost จะมีผลกับฉันและฉันใช้ Apache 2.4: ไม่มี NameVirtualHost, "<VirtualHost *: number>" ไม่เพียงพอที่จะป้องกันไม่ให้ VirtualHost ตอบรับบนพอร์ตอื่น
rsethc

7

ขั้นตอนที่ 1: กำหนดค่า Apache เป็นListenในแต่ละพอร์ตที่คุณต้องการให้บริการ

ขั้นตอนที่ 2: ตั้งค่าการกำหนดค่าโฮสต์เสมือนสำหรับแต่ละพอร์ตที่คุณต้องการให้บริการ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.