gfdxy3322 发表于 2018-11-26 07:06:20

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]
查看完整版本: web服务器apache