apache配置文件

Posted on Posted in apache
Tips: 本文创建于2014年8月23日,已超过 2 年,内容或图片可能已经失效!

1、工作模型

prefork:进程模型
一个父进程,带多个子进程
父进程接到请求后,所有进程都会激活状态,父进程分配资源后,其余进程会进入休眠状态。

worker:线程模式(推荐)
将内存和文件描述符给线程共同使用,提高性能。

2、默认网站位置

[code lang="bash"]
DocumentRoot /var/www/html
[/code]

3、虚拟主机

基于域名做虚拟主机

  • Directory?? 基于目录的
  • Location??基于域名的

[code lang="bash"]
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot /var/www/test1
ServerName www.test1.com
#设置该位置的访问权限
<Directory "/var/www/test1">
Options Indexes
Order Deny,Allow
#Deny from All
Allow from All
DirectoryIndex index.php index.html index.htm
</Directory>

</VirtualHost>
[/code]

基于端口(没有NameVirtualHost)
打开端口

[code lang="bash"]
Listen 80
Listen 8080
<VirtualHost *:8080>
DocumentRoot /var/www/test1
</VirtualHost>
[/code]

基于IP(没有NameVirtualHost)

[code lang="bash"]
<VirtualHost 192.168.1.177:80>
DocumentRoot /var/www/test1
</VirtualHost>
[/code]

4、访问控制

[code lang="bash"]
<Directory /var/www/abc>
Order deny,allow #拒绝大于允许,谁在后面,谁起作用
Deny from all #不符合要求的全部拒绝掉
Allow from 192.168.1.177 #只允许这个IP
</Directory>

<Directory /var/www/abc>
Order allow,deny
Allow from all
Deny from 192.168.1.177 #拒绝这个IP
</Directory>
[/code]

5、设置访问需要密码

[code lang="bash"]
<Directory "/var/www/html">
#options用于设定该文件夹下没有指明具体网页也没有默认网页的时候是否显示文件列表
#如果配置了options indexes,则会出现目录中文件的列表
#FollowSymLinks这个参数允许访问文件符号链接,建议支持。
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>

<Directory /var/www/html/haha>
AuthType basic #基本验证
AuthName "Hello" #登录提示
AuthBasicProvider dbm #验证基于数据库,不用可以删除
AuthDBMType SDBM #数据库类型,同样,不用就删除
AuthUserFile /etc/httpd/conf/haha #基于文件验证
Require valid-user #只接受有效用户的请求
</Directory>
[/code]

/etc/httpd/conf/haha 文件格式

[code lang="bash"]
htpasswd -cm /etc/httpd/conf/haha abc #c建立,m MD5加密,建立文件haha
[/code]

添加第二个用户,去掉c

[code lang="bash"]
htpasswd -m /etc/httpd/conf/haha cbd
[/code]

6、目录别名/虚拟目录

在一个站点中,使用一个在该站点所在文件夹下并不存在的目录名来访问某些内容(网页),此目录就称为别名目录或虚拟目录。

实际上,此目录虽然不在该站点中,但其实际是放在别的位置(文件夹),我们只是指定一个别名来指向该位置,但该别名却在此站点下可用。示例:

#此处的"*:80"必须跟上面的NameVirtualHost *:80一致

[code lang="bash"]
<VirtualHost *:80>
#设定域名(站点名):
ServerName www.test.com
#设置站点的实际位置
DocumentRoot "/var/www/html/test"
#设置该位置的访问权限
<Directory "/var/www/html/test">
Options Indexes
Order Deny,Allow
#Deny from All
Allow from All
</Directory>

#下面设定虚拟目录(目录别名)并配置其访问权限
alias /xunimulutest "/var/www/html/test"
<Directory "/var/www/html/test">
Options Indexes
Order Deny,Allow
#Deny from All
Allow from All
</Directory>
</VirtualHost>
[/code]

7、分布式配置文件系统

分布式:分布在各站点目录中的配置文件。
文件名:.htaccess
AllowOverride None
此参数:如果是none,不允许分布式配置文件生效
如果是all,则允许分布式配置文件覆盖主配置文件。

格式

  • Php_flag ? ?开关性质的参数 ?on|off|1|0
  • Php_value ? 字符串类的参数 ? 字符串值内容

8、其他命令

httpd -t 测试apache配置文件
命令网址访问
elinks http://192.168.1.177 -dump
lynx http://192.168.1.177 -dump

统计访问的IP

[code lang="bash"]
awk '{print $1}' access_log | sort -n | uniq -c | sort -n
[/code]

» 转载请注明来源:若我若鱼 » apache配置文件

Leave a Reply

Your email address will not be published. Required fields are marked *

nineteen + 11 =