我有一个使用基于名称的虚拟主机的Apache服务器.
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot /var/www/localhost
ServerName localhost.localdomain
ServerAlias localhost.localdomain
ErrorLog logs/localhost_error_log
CustomLog logs/localhost_access_log common
<Directory /var/www/localhost1>
Order Allow,Deny
Allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName localhost1.localdomain
ServerAlias localhost1.localdomain
DocumentRoot /var/www/localhost1
ErrorLog logs/localhost1_error_log
CustomLog logs/localhost1_access_log common
<Directory /var/www/localhost1>
Order Allow,Deny
Allow from all
</Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
当我键入localhost.localdomain和localhost1.localdomain时,我分别从文件夹/ var/www/localhost和/ var/www/localhost1获取正确的页面.但后来我做到了
ssh -L 0.0.0.0:10080:localhost.localdomain:80 -L 0.0.0.0:10081:localhost1.localdomain:80 localhost
Run Code Online (Sandbox Code Playgroud)
localhost:10080和localhost:10081都会得到/ var/www/localhost的答案.尽管通过SSH隧道连接,是否可以让Apache识别域?
您需要将Apache vhost ServerName与您在浏览器地址栏中键入的内容相匹配.
假设这个vhost:
ServerName foo.com
Run Code Online (Sandbox Code Playgroud)
然后在本地/ etc/hosts文件中:
127.0.0.1 foo.com
Run Code Online (Sandbox Code Playgroud)
然后
ssh -L8080:127.0.0.1:80 user@apache
Run Code Online (Sandbox Code Playgroud)
然后
wget http://foo.com:8080
Run Code Online (Sandbox Code Playgroud)
现在请求是使用Host:foo.com进行的,它应该命中正确的vhost.
| 归档时间: |
|
| 查看次数: |
2009 次 |
| 最近记录: |