设为首页 收藏本站
查看: 1506|回复: 0

[经验分享] 详解CentOS配置和管理web服务-Apache

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-10-8 09:21:50 | 显示全部楼层 |阅读模式
目录
  • 1、web介绍
  • 2、web历史和工作原理
  • 3、http请求流程
  • 4、关于Apache
  • 5、Apache服务器软件安装使用
  • 6、符号链接和虚拟目录
  • 7、页面重定向
  • 8、Apache日志文件
  • 9、Apache安全配置
  • 10、虚拟主机
    • 10.1、基于IP
    • 10.2、基于域名
    • 10.3、基于端口
web服务器配置和管理http协议简介
[size=1em]http协议,全称HyperText Transfer Protocol,中文名称超文本传输协议,是互联网应用最为广泛的一种网络协议,所有的www都必须遵守这个标准,设计http最初的目的为了提供一种发布和接收HTML(一种页面标记语言)
web服务器介绍
[size=1em]万维网又称web(world wide web,www),是在internet上以超文本为基础形成的信息网,用户可以通过浏览器可以访问web服务器上面的信息资源
web服务的历史和工作原理web服务的历史
[size=1em]Internet上最热门的服务之一就是万维网,它是因特网上以超文本为基础形成的信息网,用户可以通过查阅Internet上的信息资源,例如:平时上网使用浏览器访问网站信息的最常见应用。

[size=1em]web在1989年起源于欧洲的一个国家核能源研究院中,由于随着研究的深入和发展,研究院的文件越来越多,而且人员流动非常大,要找到相关的资料是非常困难的,于是一个科学家就提出这样的一个建议,咋服务器上维护一个目录,目录的链接指向每个人的文件,每个人维护自己的文件,保证别人访问的时候总是最新的文档,这个建议得到了采纳并不断的完善后,最终形成如今Internet上最常见的www服务
web的工作原理
[size=1em]web系统是客户端/服务端的C/S架构,所以有服务器端端和客户端程序两个部分,常用的服务器端软件有Apache,IIS,nginx等,常见的客户端浏览器有IE,Mozilla等,用户在浏览器地址栏中输入资源定位地址(URL)来访问web页面

[size=1em]web页面是以超文本标记语言(HTML)进行编写,它是文本不在是传统的书页方式文本,而是可以在浏览器上面从一个页面跳转到另一个页面,使用HTML语言编制的web除了文本意外还可以嵌入视频,音乐,图象等
wKioL1f2fdWiVss5AADwA4EAD84609.png
[size=1em]浏览一个页面时,(比如http://www.baidu.com/index.html)浏览器会向服务器www.baidu.com发送一条HTTP请求,服务器会去寻找所期望的对象(在这个例子就是/index.html),如果发送成功,就将对象,对象类型,对象长度以及其他一些信息放在http响应中发给客户端
[iyunv@localhost ~]# curl -I www.baidu.com
HTTP/1.1 200 OK
Server: bfe/1.0.8.18
Date: Thu, 06 Oct 2016 07:23:46 GMT
Content-Type: text/html
Content-Length: 277
Last-Modified: Mon, 13 Jun 2016 02:50:09 GMT
Connection: Keep-Alive
ETag: "575e1f61-115"
Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
Pragma: no-cache
Accept-Ranges: bytes
http协议请求原理过程图
wKiom1f2fe3ys2ThAADfWzPyWtc678.png
一次完整的Http请求处理过程:
        (1) 建立或处理连接请求;
        (2) 接收请求;
        (3) 解析请求,处理请求;
        (4) 加载用户请求的资源;
        (5) 构建响应报文;
        (6) 发送响应报文;
        (7) 记录访问于日志中;
访问错误响应码            1xx:
            2xx: 成功响应
            3xx: 重定向响应
            4xx: 客户端错误
            5xx: 服务端错误
知名Web服务
某个网站统计的web软件排名
wKioL1f2fgrz_8xvAAC6wvjbyas121.png
[size=1em]Windows系统中默认Web服务程序是IIS(Internet Information Services),这是一款图形化的网站管理工具,IIS程序不光能提供Web网站服务,还能够提供FTP、NMTP、SMTP等服务功能,但只能在Windows系统中使用。

[size=1em]nginx——最初于2004年10月4日为俄罗斯知名门户站点而开发的,作为一款轻量级的网站服务软件,因其稳定性和丰富的功能而深受信赖,但最最最被认可的是低系统资源、占用内存少且并发能力强,目前国内如新浪、网易、腾讯等门户站均使用。

[size=1em]Apache——取自美国印第安人土著语Apache,寓意着拥有高超的作战策略和无穷的耐性,由于其跨平台和安全性广泛被认可且拥有快速、可靠、简单的API扩展。目前拥有很高的Web服务软件市场占用率,全球使用最多的Web服务软件,开源、跨平台(可运行于Unix,linux,windows中)。

[size=1em]Tomcat——属于轻量级的Web服务软件,一般用于开发和调试JSP代码,通常认为Tomcat是Apache的扩展程序。
关于Apache服务
Nginx程序作为Web服务软件届的后起之秀已经通过自身的努力与优势赢得了大批站长的信赖,不得不说真的很棒!但是Apache程序作为老牌的Web服务软件因其卓越的稳定性与安全性成为了红帽RHEL7系统中默认的网站服务软件,同样也是红帽RHCSA与RHCE考试认证中避不开的考题。
Apache简介
Apache是一种开源的httpd服务器软件,可以在UNIX、Linux以及Windows在内的大多数主流计算机操作系统系统上面运行,Apache是由Illinois大学Urbana-Champaign的国家高级计算机程序中心开发,它的名字取自apatchy server 的读音,即充满补丁的服务器,可见在最初的时候该程序并不是非常完善
Apache优点
但由于Apache是开源软件,所以得到开源社区的支持,不断开发出新的功能特性,并修补了原来的缺陷,经过多年不断的完善,如今的Apache已经是最流行的web服务端软件之一Apache拥有以下众多的特性,保证了它可以高速稳定的运行
支持所有的计算机平台
简单有效的配置文件
支持虚拟主机
支持多种方式的http认证
集成Perl脚本语言
集成代理服务器模块
支持实时监视服务器状态和定制服务器日志
支持服务器端包含指令
支持Php
支持第三方软件开发商提供的软件
Apache模块化
Apache服务器的安装使用httpd相关软件及安装httpd-2.2.15-29.el6_4.x86_64.rpm                //服务端主程序包,服务器运行核心软件包
httpd-devel-2.2.15-29.el6_4.x86_64.rpm          //apache开发程序包,如开发附加模块的时候需要此软件
httpd-manual-2.2.15-29.el6_4.noarch.rpm     //Apache手册文档
httpd-tools-2.2.15-29.el6_4.x86_64.rpm          //一起apache的工具,如htpasswd
apr-devel-1.3.9-5.el6_2.x86_64.rpm              //安装httpd-devel的时候的依赖包
apr-util-devel-1.3.9-3.el6_0.1.x86_64.rpm           //安装httpd-devel的时候的依赖包
expat-devel-2.0.1-11.el6_2.x86_64.rpm           //安装httpd-devel的时候的依赖包
安装Apache
Linux基本都自带Apache软件
[iyunv@localhost ~]# ls /mnt/Packages/ | grep "httpd"
httpd-2.2.15-53.el6.centos.x86_64.rpm
[iyunv@localhost ~]# yum install -y httpd httpd-manual
[iyunv@localhost ~]# yum install -y elinks  //这是一个字符界面浏览器 使用方式 “elinks 域名”
[iyunv@localhost ~]# service httpd restart          //服务启动
[iyunv@localhost ~]# chkconfig httpd on         //服务开机启动
[iyunv@localhost ~]# netstat -antup | grep 80       //启动是否成功,查看端口是否开放
相关文件[iyunv@localhost ~]# ls /etc/httpd/                 //apache工作目录,配置文件目录
[iyunv@localhost ~]# ls /etc/httpd/conf/httpd.conf          //yum或rpm方式安装的配置文件位置
[iyunv@localhost ~]# ls /etc/httpd/conf.d/          //这个是默认httpd.conf里面include位置
[iyunv@localhost ~]# ls /var/log/httpd/                 //默认日志目录
[iyunv@localhost ~]# ls /var/log/httpd/access_log           //默认访问日志
[iyunv@localhost ~]# ls /var/log/httpd/error_log            //默认错误日志
[iyunv@localhost ~]# ls /var/www/html/                  //默认网站根目录
[iyunv@localhost ~]# ls /etc/httpd/modules/             //apache库文件,模块文件目录
[iyunv@localhost ~]# ls /etc/httpd/run/httpd.pid            //apache运行的进程pid
[iyunv@localhost ~]# ls /var/www/manual/                    //apache手册也,需要安装httpd-manual
查看Apache的相关信息查看Apache软件版本信息[iyunv@localhost ~]# httpd -V
Server version: Apache/2.2.15 (Unix)
Server built:   May 11 2016 19:28:33
Server's Module Magic Number: 20051115:25
Server loaded:  APR 1.3.9, APR-Util 1.3.9
Compiled using: APR 1.3.9, APR-Util 1.3.9
Architecture:   64-bit
Server MPM:     Prefork
  threaded:     no
    forked:     yes (variable process count)
查看已经被编译的模块[iyunv@localhost ~]# httpd -l
Compiled in modules:
  core.c
  prefork.c
  http_core.c
  mod_so.c
httpd.conf主配置文件的解释ServerTokens OS                     #返回操作系统类型,如apache/2.0.54(unix)
ServerRoot "/etc/httpd"             #服务器配置文件目录
ServerName 192.168.1.235:80     #服务器主机名
PidFile run/httpd.pid               #apache运行进程ID存放
Timeout 60                          #超时时间,多少s没有反应就超时
KeepAlive Off                       #是否允许一个永久的链接,设置为OFF的时候,不能保持连接功能,传输效率比较低,设置为ON时,可以提高服务器传输文件的效率,建议开启
MaxKeepAliveRequests 100        #设置KeepAlive为ON时,设置客户端每次连接允许请求相应最大文件数,默认100个
KeepAliveTimeout 15                 #超时时间,同一个客户端下一个请求15s没收到就超时
Listen 80                          #监听端口,默认本地IP,如果指定ip写上IP:80

StartServers       8               #服务开始起启动8个进程
MinSpareServers    5                #最小空闲5个进程
MaxSpareServers   20                #最多空闲20个进程
ServerLimit      256              #服务器允许配置进程数上线
MaxClients       256                #最大连接数256,超过要进入等候队列
MaxRequestsPerChild  4000       #每个进程生存期内服务最大的请求数量,0表示用不结束


    Options FollowSymLinks          #Options Indexes 目录浏览  FollowSymLinks用连接浏览
    AllowOverride None          #设置为none,忽略.htaccess

LoadModule auth_basic_module modules/mod_auth_basic.so          #载入的库,模块
● ● ● ● ● ●
Include conf.d/*.conf               #conf.d里面的conf文件也属有效配置文件
User apache                         #apache运行以哪个身份运行
Group apache                        #apache运行以哪个组的身份运行
ServerAdmin root@localhost          #管理员邮箱
DocumentRoot "/var/www/html"        #默认的主目录,如果改动要改动两处,Directory

    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny                #这里默认后者生效,也就是deny生效
    Allow from all                      #这里说允许所有

LogLevel warn                               #日志等级
DirectoryIndex index.html index.html.var        #首页
AccessFileName .htaccess                        #access文件名
AddDefaultCharset UTF-8                     #支持的语言,默认编码
#配置文件的最后是虚拟主机的字段,其中你大部分字段做个了解即可,用到的时候去查即可
检测配置文件语法[iyunv@localhost ~]# cat /etc/httpd/conf/httpd.conf | grep "^Listen"            //修改web端口为55667
Listen 55667
[iyunv@localhost ~]# apachectl configtest
httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain for ServerName
Syntax OK
[iyunv@localhost ~]# service httpd reload           //切记http服务不可以随便重启,修改配置文件要重新载入配置文件
Reloading httpd:
wKioL1f2fi3jdkCOAABLS0FZopk753.png
创建一个测试首页[iyunv@localhost ~]# cd /var/www/html/
[iyunv@localhost html]# ls
[iyunv@localhost html]# echo "zhang789.blog.iyunv.com" >> index.html
[iyunv@localhost html]# ll
total 4
-rw-r--r-- 1 root root 33 Oct  6 09:06 index.html
wKiom1f2fkjwIdm-AAAwtc4SVyU662.png
符号链接和虚拟目录
DocumentRoot的参数是指定web发布文档的主目录,在默认情况下,用户通过http访问web服务器浏览的所有资料都是存在该目录下,该参数只能设置一个目录作为参数值,那么是不是在Apache中就能有一个目录存放文档文件呢?如果文档根目录空间不足,要放到其他的文件系统中应该怎么办,
符号链接
例如:/var/www/html/doc这个目录,希望吧/usr/share/doc目录映射成/var/www/html/doc,配置就是一个软连接就行
[iyunv@localhost html]# ln -s /usr/share/doc/ doc
[iyunv@localhost html]# ll
total 4
lrwxrwxrwx 1 root root 15 Oct  6 09:49 doc -> /usr/share/doc/
-rw-r--r-- 1 root root 33 Oct  6 09:06 index.html
wKiom1f2fmKgJY5zAACmIOJTar8285.png
虚拟目录(别名)
使用虚拟目录是另一种将根目录以外的内容加入站点中的办法,下面举一个简单的例子,把/var/log目录映射成网站根目录下的/log下
1、打开httpd.conf文件,添加如下内容
Alias /log "/var/log"

    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all

2、重载httpd服务,然后访问加资源URL/log路径
wKiom1f2foyDrSG1AAByAK-AB50837.png
页面重定向
如果用户经常访问某个网站的网页,他很可能会把页面的URL添加到收藏夹,在每次访问网站的时候,可以直接点击收藏夹的记录访问,但是如果网站进行了目录架构的更改,用户再使用原来的URL访问时就会出现404页面无法找到的错误,为了方便用户能够使用原来的URL进行访问,这时就需要页面重定向了
[size=1em]假设网站有一个doc目录,现在管理员要对网站的目录结构就行整理,并把/doc目录移动到/old-doc目录下,如果用户还是访问原来的URL就会出现404的错误,
1、打开httpd.conf配置文件,添加如下内容
Alias /old-doc "/usr/share/doc"

    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all

#指定当用户访问/doc目录遇到404错误自动重定向到http://192.168.211.128:55667/old-doc
Redirect 303 /doc http://192.168.211.128:55667/old-doc
2、重载httpd服务
3、使用浏览器再次访问
wKioL1f2frTQk2CHAACCLaTV0vQ993.png
Apache日志文件
Apache运行会生成两个日志文件,access_log(访问日志)error_log(错误日志)
[iyunv@localhost httpd]# pwd
/var/log/httpd
[iyunv@localhost httpd]# ls
access_log  error_log
1、访问日志文件
Apache的访问日志就是记录web服务器的所有访问活动(如下图)
wKioL1f2ftfj8vA_AAFo3tr68oY343.png 从文件内容可以看出,每一行都记录了一次访问记录,由7个部分组成
192.168.211.1 - - [06/Oct/2016:10:23:26 +0800] "GET /old-doc/ HTTP/1.1" 200 149404 "-" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36"
//客户端地址、访问者的标示、访问者的验证名字、请求的时间、请求类型、请求的http代码、发送给客户端的字节数
7部分详细说明
客户端地址:表明访问网站的客户端IP地址
访问者的标示:该项一般为空白,用“-”代替
访问者验证的名字:该项用于记录访问者进行身份验证时提供的名字,一般情况下该项也为空白
请求的时间:记录访问操作的发生时间
请求类型:该项记录了服务器收到是一个什么类型的请求,一般类型包括GET、post、HEAD
请求的代码:通过该项信息可以知道请求是否成功,遇到了什么样的问题错误,正常情况下,为200
发送给客户端的字节数:表示发送给客户端的总的字节数,通过检查该数值是否和文件大小相同,可以知道传输是否被中断
2、错误日志
错误日志是Apache提供的另外一种标准日志,该日志记录了Apache服务运行过程发生的错误日志,httpd.conf配置文件中提供了一下两个配置参数:
ErrorLog logs/error_log
LogLevel warn
它们分别用于配置错误日志的位置和日志的级别
日志的级别说明
严重程度     等级     说明
1           emerg   系统不可以用
2           alert   需要立即引起注意的情况
3           crit    危急情况
4           error   错误信息
5           warn    警告信息
6           notiee  需要引起注意的情况
7           info    一般信息
8           debug   由运行于debug模式的程序输出的信息
emerg级别的信息最为严重,debug级别最低,如果用户吧错误日志设置成warn级别,则严重程度由1-5会被记录下来
wKiom1f2fyvjqQRSAAERvWLRlc4230.png 从文件内容可以看出,每一行记录了一个错误,由3个部分组成,
时间 错误等级 错误信息
[Thu Oct 06 10:22:24 2016] [error] [client 192.168.211.1] Directory index forbidden by Options directive: /usr/share/doc/
第一个括号是错误发生的时间 2016年10月06 10:22:24
第二个是错误等级:error
第三个是错误的内容:[客户192.168.211.1]目录索引选项禁止指令:/usr/share/doc/
Apache安全配置
Apache提供了多种安装控制手段,包括web访问控制,用户登录密码设置及.htaccess文件
访问控制
访问控制是提高apache服务器安全级别的最有效的手段之一,看下Diertory段,Diertory段用于设置与目录相关的参数和指令,包括访问控制和认证

            目录相关的配置参数和指令

每个Diretory段以开始结束,指定目录及其里面的所有文件和子目录,在段中可以设置与目录相关的参数和指令,包括访问控制和认证

    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all

1、Allow 指令
Allow指令用于设置那些客户端可以访问Apache
Allow for [All/全域名/部分域名/ip地址/网络地址/cidr地址。。。]
all表示所有客户端
全域名:表示域名对应的客户端 www.baidu.com
部分域名:表示域内的所有客户端 baidu.com
IP地址:如172.16.2.1
网络地址:如192.168.1.0/256.356.355.0
CIDR地址:172.16.20.0/24
2、Deny指令
Deny指令用户设置拒绝那些客户端访问Apache,格式和Allow一样
3、Order指令
Order指令用于指定访问规则的先后顺序,有一下两种
Order Allow,Deny;先执行允许访问规则,在执行拒绝访问规则
Order Deny,Allow;  先执行拒绝访问规则,在执行允许访问规则
[size=1em]实例:
现在,假设网站中一个logo目录,是登录网站后台的目录,所以网站管理员希望该目录只能由该网站管理员访问(192.168.211.1),其他都不能访问
1、打开httpd.conf配置文件添加如下内容

    Options Indexes FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
    Allow from 192.168.211.1

httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain for ServerName
Syntax OK
[iyunv@localhost httpd]# service httpd reload
Reloading httpd:
wKiom1f2f0_QkX3sAAAqv8-mI8I376.png
用户认证
Apache的用户认证方式包括基本(Basic)认证和摘要(Digest)认证两种,摘要认证比基本认证更加安全,但有个别浏览器不支持,基本认证很简单,当用户在浏览器输入认证模式的URL时候,会弹出一个对话框,要求输入账户密码,当用户输入后,web服务验证他的正确性,如果正确,则返回页面,错误则返回401页面
[size=1em]要使用用户认证,首先要创建好用户名和密码,在Apache中提供htpasswd命令用于创建和修改密码文件,该命令在/support目录下
要在/etc/httpd/conf/下创建一个名为users的认证密码文件,并在密码文件添加sam用户
[iyunv@localhost ~]# htpasswd -c /etc/httpd/conf/users sam
New password:
Re-type new password:
Adding password for user sam
认证密码文件创建后,如果再向users文件添加一个ken的用户 不加-C
[iyunv@localhost ~]# htpasswd /etc/httpd/conf/users ken
New password:
Re-type new password:
Adding password for user ken
与/etc/passwd文件类似,认证密码都是一行一个
[iyunv@localhost ~]# cat /etc/httpd/conf/users
sam:fGNODsapTMn72
ken:8HenVGxWHKF8A
用户名:加密后的密码
[size=1em]htpasswd没有删除账户指令,直接在配置文件里面删除
创建完成认证密码后,还要对配置文件进行修改,用户认证是在httpd.conf配置文件中段中进行设置
[size=1em]案例:
现在网站管理员为了更加安全,加强控制,对log目录经过sam用户认证才能访问
1、在httpd.conf配置文件添加如下内容

    Options Indexes FollowSymLinks
    AllowOverride None
    AuthType Basic      //设置认证的方式   
    AuthName "doc"    //设置保护区域的名称
    AuthUserFile /etc/httpd/conf/users   //认证密码的文件
    require user sam    //指定那些用户可以进行访问
    Order deny,allow
    Deny from all
    Allow from 192.168.211.1

2、检测语法,重载服务
[iyunv@localhost ~]# apachectl configtest
httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain for ServerName
Syntax OK
[iyunv@localhost ~]# service httpd reload
Reloading httpd:
[iyunv@localhost ~]#
wKioL1f2f-TCok3LAABvdyNVQXE780.png
虚拟主机
虚拟主机就是指将一台物理服务器虚拟多台web服务器,可以有效的节省硬件资源,Apache支持基于IP地址或主机名的虚拟机服务
虚拟主机的介绍
[size=1em]虚拟主机就是将一台物理服务器虚拟成多台web服务器,对于一些小规模的网站,通过web虚拟主机技术、可以跟其他网站共享一台服务器,有效减少系统的运行成本,
比如说,一家从事web托管的公司,他为企业提供web服务,那么他肯定不会为每个企业准备一台物理服务器,

[size=1em]Apache提供3中虚拟主机方案:基于IP的虚拟主机服务,基于主机名的虚拟主机和基于端口的虚拟主机
基于IP的虚拟主机
基于IP的虚拟主机,服务上面必须设置多个IP地址,服务器根据请求目的的IP地址来判断请求的是哪个虚拟主机
Apache中是通过httpd.conf配置文件的段来配置虚拟主机服务的

    虚拟主机的相关配置参数和指令

[size=1em]案例:
假设一台服务器上面有两个IP地址,分别为192.168.211.128和192.168.211.130,对应www.server1.com和[url]www.server2.com[/url],现在要根据这两个IP地址来实现虚拟主机
当客户端访问192.168.211.128访问/var/www/html/server1
当客户端访问192.168.211.130访问/var/www/html/server2
问题:
如果服务器只有一个网卡,可以通过单网卡配置多IP来模拟
1、在/var/www/html/server1和server2下,分别生成index.html文件
[iyunv@localhost html]# mkdir server{1,2}
[iyunv@localhost html]# ls
index.html  log  loganalyze  old-doc  server1  server2
[iyunv@localhost server1]# cat index.html


基于IP的虚拟主机测试


基于IP的虚拟主机测试:www.server1.com


为了管理方便在/etc/httpd/conf.d/下面创建一个vhost.conf(在httpd.conf主配置里面有指定,conf.d/*.conf都是可生效的文件)
[iyunv@localhost conf.d]# vim /etc/httpd/conf.d/vhost.conf

ServerAdmin     admin@zabbix.com
DocumentRoot    /var/www/html/server1
        
             AllowOverride none
             Allow from all
             Order Allow,deny   
        
        ErrorLog /log/httpd/vhost_log/error_server1.log


ServerAdmin     admin@zabbix.com
DocumentRoot    /var/www/html/server2
        
             AllowOverride none
             Allow from all
             Order Allow,deny   
        
        ErrorLog /log/httpd/vhost_log/error_server2.log

重载Apache服务访问
wKiom1f2gBzyKVY1AAA6gkF4kyM253.png
wKiom1f2gBzh4VSMAAA4uPvy4PA538.png

基于主机名的虚拟主机(域名)
大多数物理机IP有限,基于IP这种方式太浪费IP资源了,更多的都是使用基于域名的虚拟主机服务
[size=1em]http1.1协议中,增加了对主机名的虚拟主机服务的支持,具体的说,当客户端向web服务器发送请求时,客户端想要访问的主机名也通过请求头中的Host语句传递给web服务器,web服务器接受到这个请求后,通过检查Host语言来判断客户端请求的是哪个虚拟主机
与基于IP地址虚拟主机的配置方法不同,用户必须在conf配置文件使用NameVirtualHost参数
NameVirtualHost IP地址/主机名[:端口]
NameVirtualHost 192.168.211.128

ServerName      www.server1.com
DocumentRoot    /var/www/html/server1
        
             AllowOverride none
             Allow from all
             Order Allow,deny   
        
        ErrorLog /log/httpd/vhost_log/error_server1.log

NameVirtualHost 192.168.211.130

ServerName      www.server2.com
DocumentRoot    /var/www/html/server2
        
             AllowOverride none
             Allow from all
             Order Allow,deny   
        
        ErrorLog /log/httpd/vhost_log/error_server2.log

检查配置语法,重载httpd服务
wKioL1f2gErREu2RAAA8RGCGooI555.png
wKioL1f2gEuRnGNUAAA-SLIqcKM765.png
基于端口的虚拟主机
在同一IP,同一主机名下,使用监听不同端口,访问时需要加访问的端口。使用不多,一般用来做内网测试使用
配置文件

ServerName      www.server1.com
DocumentRoot    /var/www/html/server1
        
             AllowOverride none
             Allow from all
             Order Allow,deny   
        
        ErrorLog /log/httpd/vhost_log/error_server1.log

Listen 8080             //添加监听端口

ServerName      www.server2.com
DocumentRoot    /var/www/html/server2
        
             AllowOverride none
             Allow from all
             Order Allow,deny   
        
        ErrorLog /log/httpd/vhost_log/error_server2.log

重载服务
wKiom1f2gHORArxeAAA6M6sqaxA341.png
wKioL1f2gHSytigAAABB3pVRwWA319.png


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-282893-1-1.html 上篇帖子: apache和php动态加载模块 下篇帖子: Linux+apache2.4+php5.6环境搭建 Internet 互联网应用 web服务器 internet 虚拟主机
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表