ฉันต้องการเข้าถึงเว็บเซิร์ฟเวอร์จาก http://subdomain2.domain.com จาก URL แต่ไม่ใช่จาก IP โดยตรง (http://1.1.1.1:8080). ตัวอย่างเช่น ด้านล่างนี้เป็นไฟล์คอนฟิก virtualhost ของฉัน (site2.conf) ใน /etc/apache2/sites-available/
แต่ส่วน <VirtualHost *:8080> ... </VirtualHost>
ดูเหมือนจะไม่มีผลกระทบใดๆ
<VirtualHost *:80>
ServerName subdomain2.domain.com
ServerAlias www.subdomain2.domain.com
ServerAdmin [email protected]
DocumentRoot /var/www/site2
Keepalive On
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteEngine on
RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]
RewriteCond %{HTTP:CONNECTION} ^Upgrade$ [NC]
RewriteRule .* ws://localhost:8080%{REQUEST_URI} [P]
ProxyPreserveHost On
ProxyPass "/stream" ws://localhost:8080/ retry=0 timeout=5
ProxyPass "/" http://localhost:8080/ retry=0 timeout=5
ProxyPassReverse / http://localhost:8080/
</VirtualHost>
<VirtualHost *:8080>
ServerName 1.1.1.1:8080
ServerAlias 2001:0db8:85a3:0000:0000:8a2e:0370:7334:8080
DocumentRoot /var/www/site2
<Location />
Require all denied
</Location>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
สำหรับ http://subdomain1.domain.comฉันได้ดำเนินการนี้สำเร็จแล้วใน (000-default.conf) ใน /etc/apache2/sites-available/
และใช้งานได้ดีหลังจากเพิ่มส่วน <VirtualHost *:80> ... </VirtualHost>
. ด้านล่างนี้เป็นรหัสสำหรับการอ้างอิง:
<VirtualHost *:80>
ServerName subdomain1.domain.com
ServerAlias www.subdomain1.domain.com
ServerAdmin [email protected]
DocumentRoot /var/www
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<VirtualHost *:80>
ServerName 1.1.1.1
ServerAlias 2001:0db8:85a3:0000:0000:8a2e:0370:7334
DocumentRoot /var/www
<Location />
Require all denied
</Location>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>