Apache httpd
跳转到导航
跳转到搜索
配置
虚拟主机
<VirtualHost *:80>
ServerName domain1
ServerAlias *.domain1
DocumentRoot /www/domain1
</VirtualHost>
星号是必须的,不然各种异常。配置之后,非虚拟主机部分的配置失效。
HTTP 授权
Alias /secret/ "/home/lilydjwg/secret/"
<Directory /home/lilydjwg/secret/>
AuthType Basic
AuthUserFile /home/lilydjwg/passwd/secret
AuthName "Password Needed"
Require valid-user
AllowOverride AuthConfig
</Directory>
其中 AuthUserFile
可由htpasswd命令生成。
反向代理
示例如下:
<Location /service/>
ProxyPass http://localhost:8000/service/
ProxyPreserveHost On
</Location>
如果位于 <VirtualHost> 中,则必须指定路径:
<VirtualHost *.abc.com:80>
ServerName www.abc.com
ServerAlias *.abc.com
ProxyPass / http://other_host/
ProxyPreserveHost On
</VirtualHost>
使用 remoteip 模块改写远端地址。如针对 CloudFlare:
<VirtualHost *:80>
...
RemoteIPHeader Cf-Connecting-IP
RemoteIPTrustedProxy 199.27.128.0/21 173.245.48.0/20 103.21.244.0/22 103.22.200.0/22 103.31.4.0/22 141.101.64.0/18 108.162.192.0/18 190.93.240.0/20 188.114.96.0/20 197.234.240.0/22 198.41.128.0/17 162.158.0.0/15 104.16.0.0/12
</VirtualHost>
设置变量
SetEnv HTTPS on
SetEnvIf X-Forwared-Proto https HTTPS=on
访问控制
以下适用于 Apache 2.2[1],不适用于 2.4 版本。
只允许 CloudFlare 访问(IP数据于2014年12月3日更新,只包含 IPv4 部分):
<Location />
Order Allow,Deny
Allow from 199.27.128.0/21
Allow from 173.245.48.0/20
Allow from 103.21.244.0/22
Allow from 103.22.200.0/22
Allow from 103.31.4.0/22
Allow from 141.101.64.0/18
Allow from 108.162.192.0/18
Allow from 190.93.240.0/20
Allow from 188.114.96.0/20
Allow from 197.234.240.0/22
Allow from 198.41.128.0/17
Allow from 162.158.0.0/15
Allow from 104.16.0.0/12
</Location>
未能完成的功能
- 默认虚拟主机
- 在特定虚拟主机内,只允许 CloudFlare 的访问(mod_cloudflare 只能全局配置)
参见
外部链接
- 基于域名的虚拟主机(官方英文文档)
- 基于域名的虚拟主机(简体中文)
- Htaccess文件用法集锦 | 外刊IT评论
- modwsgi: QuickConfigurationGuide
- 25个Apache性能优化技巧 | I'm tolbKni