Apache配置虚拟主机

xiaoxiao2021-02-28  39

我用的是源码编译的apache,配置虚拟主机,在主配置文件目录下的 extra/httpd-vhosts.conf 文件,自己也可以创建新的目录,然后在 httpd.conf 最末尾配置上路径即可,添加内容为:

IncludeOptional conf.d/*.conf #conf.d为自己手动创建的目录

下面是一些虚拟主机样例:

#最简单的配置虚拟主机 <VirtualHost *:80> ServerAdmin abc@admin.com DocumentRoot "/home/wwwroot/abc" ServerName abc.com #域名 ServerAlias www.abc.com #设置域名的别名 ErrorLog "|/usr/local/sbin/cronolog /weblog/error/abc-%Y%m%d.log" CustomLog "|/usr/local/sbin/cronolog /weblog/access/abc-%Y%m%d.log" combined </VirtualHost> #指定访问目录权限 <VirtualHost *:80> ServerAdmin abc@admin.com DocumentRoot "/home/wwwroot/abc" ServerName abc.com ServerAlias www.abc.com ErrorLog "|/usr/local/sbin/cronolog /weblog/error/abc-%Y%m%d.log" CustomLog "|/usr/local/sbin/cronolog /weblog/access/abc-%Y%m%d.log" combined <Directory "/home/wwwroot/abc/"> Options FollowSymLinks #不显示目录结构 AllowOverride All Order allow,deny Allow from all </Directory> </VirtualHost> #使用正则,进行url改写 <VirtualHost *:80> ServerAdmin abc@admin.com DocumentRoot "/home/wwwroot/testabc" ServerName test.abc.com RewriteEngine On RewriteCond %{HTTP_HOST} ^test.abc.com [NC] RewriteRule ^(.*) https://test.abc.com [L] ErrorLog "|/usr/local/sbin/cronolog /weblog/error/buymarvel-%Y%m%d.log" CustomLog "|/usr/local/sbin/cronolog /weblog/access/buymarvel-%Y%m%d.log" combined </VirtualHost> #既使用正则,又指定访问目录权限 <VirtualHost *:80> ServerAdmin abc@admin.com DocumentRoot "/home/wwwroot/testabc" ServerName test.abc.com ServerAlias m..abc.com RewriteEngine On RewriteCond %{HTTP_HOST} ^m.lipton.com.cn [NC] RewriteRule ^(.*) http://test.abc.com/ [L] ErrorLog "|/usr/local/sbin/cronolog /weblog/error/exploration-%Y%m%d.log" CustomLog "|/usr/local/sbin/cronolog /weblog/access/exploration-%Y%m%d.log" combined <Directory "/home/wwwroot/exploration/"> Options FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory> </VirtualHost> #使用代理 <VirtualHost *:80> ServerAdmin abc@admin.com DocumentRoot "/home/wwwroot/www" ServerName test1.abc.com ErrorLog "|/usr/local/sbin/cronolog /weblog/error/foundry-%Y%m%d.log" CustomLog "|/usr/local/sbin/cronolog /weblog/access/foundry-%Y%m%d.log" combined <Directory "/home/wwwroot/www/"> Options FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory> ProxyPass /2018 http://localhost:8080/2018 ProxyPassReverse /2018 http://localhost:8080/2018 ProxyPass /2018v2 http://localhost:8080/2018v2 ProxyPassReverse /2018v2 http://localhost:8080/2018v2 </VirtualHost> #基于用户验证,对于指定页面使用验证 <VirtualHost *:80> DocumentRoot "/home/wwwroot/www" ServerName www.abc.com <Directory "/home/wwwroot/www/2.html"> Options None AllowOverride AuthConfig #文件需要认证 AuthType Basic #认证类型为基本认证 AuthName "Private Area" #显示的标题 AuthBasicProvider file #认证的提供者 AuthUserFile /usr/local/apache/.userpasswd #认证的文件 Require valid-user #可以读取认证文件的用户,vaild-user 表示所有合法用户,也可以 user admin来指定单个用户 </Directory> </VirtualHost> [root@test extra]# htpasswd -c /usr/local/apache/.userpasswd test New password: Re-type new password: Adding password for user test

补充: 在主u配置文件 httpd.conf 中配置目录权限也可以:

#拒绝所有的IP,只允许192.168.22.129来访问 Alias /html/ /var/www/html <Directory "/var/www/html"> Options FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 192.168.22.129/255.255.255.0 </Directory>
转载请注明原文地址: https://www.6miu.com/read-2612373.html

最新回复(0)