web服务器apache
web服务器apache一 :web服务工作的端口:
http80/TCP
https 443/TCP
二:http的主要版本:
http1.0 引入MIME(Miltipurpose Internet Mail Extension)多用途互联网邮件扩展,mime 将二进制文件转换为文本文件,传输到对方后,再将之重新还原为原来的样子,还能使得接受方知道通过哪个应用程序打开文件。 每个object都进行三次握手。
http1.1 引入keepalive(保持连接)的功能,并提供了缓存的功能,每个object只进行一次三次握手,可进行多次请求。keepalive 可以设置超时时间,还可以设置一次连接请求的最大数目,提高并发能力。
三: http响应码:
1xx:说明信息
2xx:正常响应信息
3xx;资源请求重定向
4xx:客户端错误
5xx:服务器端错误
四:apache的rpm包安装方式:
#yum install -y httpd
五:apache的配置:
httpd的主配置文件是/etc/httpd/conf/httpd.conf,通过编辑此文件来定制自己的httpd服务。
主配置文件中共有三个字段
# grep "Section" /etc/httpd/conf/httpd.conf
### Section 1: Global Environment //全局端
### Section 2: 'Main' server configuration//中心主机段
### Section 3: Virtual Hosts//虚拟主机段
其中中心主机段和虚拟主机段不能同时使用,所以使用虚拟主机时要将中心主机取消,但如果还需要用到中心主机提供的内容时,这时可以将中心主机也配置成一台虚拟主机。
Section 1: Global Environment
ServerTokens 显示server版本信息,可用参数如下:
ServerTokens Prod
Server sends (e.g.): Server: Apache
ServerTokens Major
Server sends (e.g.): Server: Apache/2
ServerTokens Minor
Server sends (e.g.): Server: Apache/2.0
ServerTokens Min
Server sends (e.g.): Server: Apache/2.0.41
ServerTokens OS
Server sends (e.g.): Server: Apache/2.0.41 (Unix)
ServerTokens Full (or not specified)
Server sends (e.g.): Server: Apache/2.0.41 (Unix) PHP/4.2.2 MyMod/1.2
ServerRoot 服务器的起点安装目录所在的地方(一般不要更改)
/etc/httpd
PidFile pid文件
run/httpd.pid 相对路径,相对于ServerRoot
Timeout 超时时间,当用户和服务器建立连接后,在此Timeout时间内没有在访问就断开
KeepAlive是否开启保持连接
on/off
开启保持连接时,一次三次握手可以访问多个文件,off时性能好,on时用户体验好。
MaxKeepAliveRequests当用户连接后一直请求而不断开时,最多访问的文件数。
KeepAliveTimeout保持连接的超时时间
如果用户在此事件内没有访问就断开
# MPM
//如果perfork模块存在,生效如下指令
StartServers 8 //启动服务时,自动生成几个进程等待用户的访问。# ps aux | grep httpd查看启动的进程数
MinSpareServers 5 //最少空闲进程
MaxSpareServers 20 //最多空闲进程
ServerLimit 256 //MaxClients的超出上限
MaxClients 256 //最多允许多少个进程同时启动
MaxRequestsPerChild4000 //一个进程最多响应多少个请求,多于此值后进程必须销毁,如果还有请求时,必须在建立进程进行响应
//如果worker模块存在,生效如下指令
StartServers 2 //启动的进程数
MaxClients 150
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25//每一个进程最多可以生成多少个线程
MaxRequestsPerChild0//每一个子进程可以相应多少个请求,0表示不作限制
Listen 80 监听的端口,可以设定多个Listen ,如果一个网卡有多个ip地址时,要指定监听哪个地址的端口,可在端口前加ip地址 Listen 12.34.56.78:80
LoadModule装载模块
LoadModule foo_module modules/mod_foo.so
模块名称 相对路径,相对于serverroot
Include conf.d/*.conf包含的配置文件
ExtendedStatus On 开启时显示扩展信息,如ServerTokens 的信息
User apache 指定运行服务的用户和组
Group apache
### Section 2: 'Main' server configuration 中心主机的配置
ServerAdmin root@localhost管理员的邮箱地址,当访问服务器出现故障时给此邮箱发送邮件解决问题。
ServerName www.example.com:80 当正解和反解都失败时,可以启用此选项,直接指定servername
UseCanonicalName Off 是否使用正式名称
DocumentRoot "/var/www/html" 网页文件的存放位置
定义访问网页的属性
Options Indexes FollowSymLinks 定义选项,index表示允许索引,当没有主页面时,会将次目录下的所有文件都列出来,当开启index时有危险,一般要去掉index。FollowSymLinks表示允许访问符号链接所指向的文件
DirectoryIndex index.html index.html.var指定主页名称
AllowOverride None 是否允许覆盖
AllowOverride AuthConfig
AuthName"private"
AuthType Basic
AuthUserFile /etc/httpd/conf/.htpasswd
Require user gentoo 仅允许gentoo登录
#Require valid-user 所有的合法帐号均可登陆
#####################################
也可以允许组登录,需添加如下行:
AuthGroupFile /etc/httpd/conf/.htgroup
Require group developers
然后添加组:vim /etc/httpd/conf/.htgroup添加如下行:
developers:gentoo ubuntu
添加ubuntu用户: htpasswd -cm /etc/httpd/conf/.htpasswd ubuntu
重启服务即可
###################################################
创建用户:
htpasswd
-c 创建用户,第一次创建事使用
-m 将用户的密码md5加密存放
-D 删除用户
例子:添加用户:
htpasswd -cm /etc/httpd/conf/.htpasswd gentoo
htpasswd -m /etc/httpd/conf/.htpasswd gentoo
第二次创建时,不用-c
####################################################
Order allow,deny 后面的是默认规则
在Apache中位系统用户设置自己的网页:
注释掉UserDir disable
启用UserDir public_html,并将用户的网页文件放在public_html中(切换到该用户下,创建/public_html目录,在该目录下创建index.html文件,并将此文件的权限改变:
chmod o+x /home/jerry/
访问时:http://172.16.100.1/~jerry/
DirectoryIndex index.html index.html.var默认主页面
AccessFileName .htaccess打算控制哪个目录就在哪个目录中建立.htaccess 文件,在里面定义AllowOverride信息。例如在上面的jerry用户下在/public_html目录下建立.htaccess 文件:
AuthName "Jerry's Home"
AuthType Basic
AuthUserFile /home/jerry/.htpasswd
Require user jerry
在在jerry用户下执行命令:
#htpasswd -cm /home/jerry/.htpasswd jerry
ErrorLog logs/error_log错误日志
LogLevel warn 错误日志的日志级别
debug, info, notice, warn, error, crit,alert, emerg.
Alias /icons/ "/var/www/icons/" 路径别名
通过网页路径访问一个并不在当前路径下的其他路径时,使用路径别名进行定义
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"脚本别名
AddDefaultCharset UTF-8默认字符集,此情况下可能会产生乱码,产生乱码时就注释此行。
虚拟主机:一个物理主机上能够运行多个站点,其中每一个站点叫做一个虚拟主机。
虚拟主机的类型:
1.IP 基于IP
2.Port基于端口
3.FQDN基于域名
虚拟主机的定义方法(中心主机的定义方法这里都可以使用)基于IP:
ghq.com/index.html
# echo 'www.linux.org' > linux.org/index.html
要启用虚拟主机,先关闭中心主机:
注释掉DocumentRoot "/var/www/html"
在文件的最下方添加文件:
ServerName www.ghq.com
DocumentRoot "/vhosts/ghq.com"
ServerName www.linux.org
DocumentRoot "/vhosts/linux.org"
定义多个虚拟主机时,可已按照这种方法继续添加。
例子(基于端口):
先为虚拟主机提供网页文件:
# mkdir /vhosts
# mkdir /vhosts/{ghq.com,linux.org}
# cd /vhosts/
# ls
linux.orgmagedu.com
# echo 'www.ghq.com' > ghq.com/index.html
# echo 'www.linux.org' > linux.org/index.html
要启用虚拟主机,先关闭中心主机:
注释掉DocumentRoot "/var/www/html"
开启监听的端口号,在主配置文件中添加如下行
Listen 8080
在文件的最下方添加文件:
ServerName www.ghq.com
DocumentRoot "/vhosts/ghq.com"
//IP相同,只是端口号改变了
ServerName www.linux.org
DocumentRoot "/vhosts/linux.org"
定义多个虚拟主机时,可已按照这种方法继续添加。
例子(基于FQDN):
先为虚拟主机提供网页文件:
# mkdir /vhosts
# mkdir /vhosts/{ghq.com,linux.org}
# cd /vhosts/
# ls
linux.orgghq.com
# echo 'www.ghq.com' > ghq.com/index.html
# echo 'www.linux.org' > linux.org/index.html
要启用虚拟主机,先关闭中心主机:
注释掉DocumentRoot "/var/www/html"
启用NameVirtualHost *:80行,且将*改为下面要使用的IP地址
NameVirtualHost 10.106.34.100:80
在文件的最下方添加文件:
ServerName www.ghq.com
DocumentRoot "/vhosts/magedu.com"
//IP相同,端口号也相同
ServerName www.linux.org
DocumentRoot "/vhosts/linux.org"
在更改宿主机上编辑C:\WINDOWS\system32\drivers\etc\hosts文件
10.106.34.100 www.ghq.com
10.106.34.100 www.linux.org
在windows上进入cmd命令行ping www.ghq.com
ping www.linux.org
都正常
定义多个虚拟主机时,可已按照这种方法继续添加。
页:
[1]