Web服务器——Apache

一 Web服务器相关知识

Web服务器是Linux最常用的应用。Web服务器是一种BS结构,亦即浏览器/服务器模式,具有通用性,是CS(客户端/服务器)结构的一种抽象。Web服务器通常采用HTTP协议,亦即超文本传输协议。动态语言的发展从CGI到以后的JSP、PHP、ASP.NET,后面几种技术现在得到了广泛地应用。Apache服务器是由Apache基金会开发、运行和维护的一种Web服务器,本身支持PHP,对应的访问名是httpd。为了支持JSP,在apache的基础上进行改善,出现了tomcat,也就是Apache的加强版。想必读者非常清楚,Java体系被分为J2SE(Java Standard Edition)、J2EE(Java Enterprise Edition,包括JSP、Servlet、EJB、JNDI、Struts、Hibernate、Spring等技术)、J2ME(Java Micro Edition)。其他公司也出现了可以支持Java技术的Web服务器,比如Jboss,现属于RedHat(三大产品线:Linux系统、虚拟机、JBoss),BEA公司的WebLogic,IBM公司的Websphere等等。当然Windows下支持ASP.NET的Web服务器有微软的IIS。

 

二 什么是Apache

Apache,当今市场上主流的Web服务器。Apache基本配置文件的httpd.conf。apache可以和php集成。


三 apache安装及参数讲解

 #安装
[root@serv01 ~]# yum install httpd -y
[root@serv01 ~]# rpm -qa|grep httpd
httpd-tools-2.2.15-9.el6.x86_64
httpd-2.2.15-9.el6.x86_64
 
 [root@serv01 ~]# rpm -ql httpd|grep conf
/etc/httpd/conf
/etc/httpd/conf.d
/etc/httpd/conf.d/README
/etc/httpd/conf.d/welcome.conf
/etc/httpd/conf/httpd.conf
/etc/httpd/conf/magic
/etc/sysconfig/httpd
/usr/lib64/httpd/modules/mod_log_config.so
 
 [root@serv01 ~]# cd /etc/httpd/
[root@serv01 httpd]# ll
total 8
drwxr-xr-x. 2 root root 4096 Aug 14 22:18conf
drwxr-xr-x. 2 root root 4096 Aug 14 22:18 conf.d
lrwxrwxrwx. 1 root root   19 Aug 14 22:18 logs ->../../var/log/httpd
lrwxrwxrwx. 1 root root   29 Aug 14 22:18 modules ->../../usr/lib64/httpd/modules
lrwxrwxrwx. 1 root root   19 Aug 14 22:18 run ->../../var/run/httpd
[root@serv01 httpd]# ls conf.d/
README welcome.conf
[root@serv01 httpd]# ls logs/
access_log error_log
 
URL:http://httpd.apache.org/docs/2.2/
 
/etc/httpd/conf/httpd.conf
 
#参数ServerTokens
 
浏览器访问:http://192.168.1.11/aaa.html
 
ServerTokens OS
Not Found
The requested URL /aaa.html wasnot found on this server.
Apache/2.2.15 (Red Hat)Server at 192.168.1.11 Port 80
 
ServerTokens major
Not Found
The requested URL /aaa.html wasnot found on this server.
Apache/2 Server at192.168.1.11 Port 80
 
ServerTokens full
 
Not Found
The requested URL /aaa.html wasnot found on this server.
Apache/2.2.15 (Red Hat)DAV/2 Server at 192.168.1.11 Port 80
 
 
#根目录
ServerRoot "/etc/httpd"
 
#PID
PidFile run/httpd.pid
 
#连接超时
Timeout 60
 
#不支持有状态连接
KeepAlive Off
 
#KeepAlive ON时生效,最大请求连接的时间
MaxKeepAliveRequests 100
 
#两次请求之间的延时
KeepAliveTimeout 15
 
#MPM:多路处理模块
#prefork worker
 
#处理请求两种方式:进程 线程
#进程:prefork 每个用户启动一个进程,一个进程处理一个客户端 安全好
#worker:线程处理每个连接,一个进程中有多个线程 性能好
#RPM包不支持worker,源码编译
# prefork MPM
# StartServers: number of server processes tostart
# MinSpareServers: minimum number of serverprocesses which are kept spare
# MaxSpareServers: maximum number of serverprocesses which are kept spare
# ServerLimit: maximum value for MaxClientsfor the lifetime of the server
# MaxClients: maximum number of serverprocesses allowed to start
# MaxRequestsPerChild: maximum number ofrequests a server process serves
<IfModule prefork.c>
#启动服务器时的进程数目
StartServers       8
#最小空闲进程
MinSpareServers    5
#最大空闲进程
MaxSpareServers   20
#服务器限制 ServerLimit MaxClients保持一致
ServerLimit      256
#最多支持客户端访问
MaxClients       256
#最大的请求数量
MaxRequestsPerChild  4000
</IfModule>
 
[root@serv01 conf]# ps -ef|grep http
root     1341     1  0 22:44 ?        00:00:00 /usr/sbin/httpd
apache   1343  1341  0 22:44 ?        00:00:00 /usr/sbin/httpd
apache   1344  1341  0 22:44 ?        00:00:00 /usr/sbin/httpd
apache   1345  1341  0 22:44 ?        00:00:00 /usr/sbin/httpd
apache   1346  1341  0 22:44 ?        00:00:00 /usr/sbin/httpd
apache   1347  1341  0 22:44 ?        00:00:00 /usr/sbin/httpd
apache   1348  1341  0 22:44 ?        00:00:00 /usr/sbin/httpd
apache   1349  1341  0 22:44 ?        00:00:00 /usr/sbin/httpd
apache   1350  1341  0 22:44 ?        00:00:00 /usr/sbin/httpd
root     1351  1149  0 22:44 pts/0    00:00:00 vim httpd.conf
root     1360  1266  0 22:58 pts/1    00:00:00 grep http
 
# worker MPM
# StartServers: initial number of serverprocesses to start
# MaxClients: maximum number of simultaneousclient connections
# MinSpareThreads: minimum number of workerthreads which are kept spare
# MaxSpareThreads: maximum number of workerthreads which are kept spare
# ThreadsPerChild: constant number of workerthreads in each server process
# MaxRequestsPerChild: maximum number ofrequests a server process serves
<IfModule worker.c>
#开始启动的
StartServers         4
#最小大的客户端
MaxClients         300
#每个进程最小支持的线程
MinSpareThreads     25
#每个进程最大支持的线程
MaxSpareThreads     75
#每个服务进程支持的线程数
ThreadsPerChild     25
#最大的服务次数,为0不限制
MaxRequestsPerChild  0
</IfModule>
 
[root@serv01 conf]# httpd -l
Compiled in modules:
 core.c
 prefork.c
 http_core.c
 mod_so.c
      
#监听
Listen 80
 
       [root@serv01 conf]# netstat -langput|grephttpd
tcp       0      0 :::80                       :::*                        LISTEN      2414/httpd
 
http://192.168.1.11:8080/
[root@serv01 conf]# netstat -langput|grephttpd
tcp       0      0 :::8080                     :::*                        LISTEN      2437/httpd
 
#动态加载模块
LoadModule
      
#包含文件  
Include conf.d/*.conf
      
#运行进程的用户
User apache
#运行进程的用户组
Group apache
 
[root@serv01 conf]# ps -ef|grep http
root     2510     1  0 23:28 ?        00:00:00 /usr/sbin/httpd
larry    2512  2510  0 23:28 ?        00:00:00 /usr/sbin/httpd
larry    2513  2510  0 23:28 ?        00:00:00 /usr/sbin/httpd
larry    2514  2510  0 23:28 ?        00:00:00 /usr/sbin/httpd
larry    2515  2510  0 23:28 ?        00:00:00 /usr/sbin/httpd
larry    2516  2510  0 23:28 ?        00:00:00 /usr/sbin/httpd
larry    2517  2510  0 23:28 ?        00:00:00 /usr/sbin/httpd
larry    2518  2510  0 23:28 ?        00:00:00 /usr/sbin/httpd
larry    2519  2510  0 23:28 ?        00:00:00 /usr/sbin/httpd
root     2521  1266  0 23:28 pts/1    00:00:00 grep http
 
#如果用户不存在,会报错
[root@serv01 conf]# /etc/init.d/httpd restart
Stopping httpd:                                           [  OK  ]
Starting httpd: httpd: bad user name justdb
                                                          [FAILED]
 
#服务器邮件地址
ServerAdmin root@localhost

四 启动不报警告解决

[root@serv01 conf]# /etc/init.d/httpd restart
Stopping httpd:                                           [  OK  ]
Starting httpd: httpd:apr_sockaddr_info_get() failed for serv01.host.com
httpd: Could not reliably determine theserver's fully qualified domain name, using 127.0.0.1 for ServerName
                                                          [  OK  ]
      
[root@serv01 conf]# vim httpd.conf
[root@serv01 conf]# cat httpd.conf |grepServerName
# ServerName gives the name and port that theserver uses to identify itself.
#ServerName www.example.com:80
ServerName serv01.host.com
# ServerName directive.
#   ServerName dummy-host.example.com
[root@serv01 conf]# /etc/init.d/httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                           [  OK  ]

五 Web根目录和别名设置

#别名:Alias 真实路径不在Web根目录下
--第一步,修改DocumentRoot
[root@serv01 conf]# cat httpd.conf | grepDocumentRoot
DocumentRoot "/web"
 
Alias /upload "/upload"
Alias /up "/upload"
 
--第二步,创建测试文件
[root@serv01 conf]# mkdir /web
[root@serv01 conf]# vim /web/index.html
[root@serv01 conf]# cat /web/index.html
this is index.html
[root@serv01 conf]# mkdir /upload
[root@serv01 conf]# mkdir /web/upload/
[root@serv01 conf]# vim /upload/index.html
[root@serv01 conf]# cat /upload/index.html
this is /upload index.html
[root@serv01 conf]# vim/web/upload/index.html
[root@serv01 conf]# cat/web/upload/index.html
this is /web/upload/ index.html
 
--第三步,设置别名
[root@serv01 conf]# tail -n1 httpd.conf
Alias /up "/upload"
[root@serv01 conf]# /etc/init.d/httpd restart
Stopping httpd:                                           [  OK  ]
Starting httpd:                                           [  OK  ]
 
--第四步,测试
浏览器输入:http://192.168.1.11/up/, 页面显示this is /upload index.html;浏览器输入http://192.168.1.11/,页面显示this is index.html;浏览器输入http://192.168.1.11/upload,页面显示this is /web/upload/ index.html

六 对目录权限的限制

<Directory />
   Options FollowSymLinks
   AllowOverride None
</Directory>
 
#配置文件中,关键字不区分大小写
       <directory "/upload"/>
              Option Indexes FollowSymLinks
</directory>
 
#假如文件夹下没有index文件,那么以文件列表显示
Indexes
#显示软链接文件
FollowSymLinks
#如果没有index.html文件,则不显示(Forbidden)
       None
 
[root@serv01 conf]# tail -n5 httpd.conf
Alias /up "/upload"
 
<directory "/upload">
       OptionsIndexes FollowSymLinks
</directory>
 
 [root@serv01 conf]# cd /upload/
[root@serv01 upload]# mkdir user
[root@serv01 upload]# cp /boot/* user/
oot@serv01 user]# cd /
[root@serv01 /]# dd if=/dev/zero of=aa01.isobs=1M count=5
5+0 records in
5+0 records out
5242880 bytes (5.2 MB) copied, 0.0260953 s,201 MB/s
[root@serv01 /]# cd -
/upload/user
[root@serv01 user]# ln -s /aa01.iso aa01.iso
 
[root@serv01 conf]# vim httpd.conf
[root@serv01 conf]# tail -n5 httpd.conf
Alias /up "/upload"
 
<directory "/upload">
       Optionsnone FollowSymLinks
</directory>
[root@serv01 conf]# /etc/init.d/httpd restart
Stopping httpd:                                           [  OK  ]
Starting httpd:                                           [  OK  ]
 
#子目录继承上级目录的权限
[root@serv01 conf]# tail -n5 httpd.conf
Alias /up "/upload"
 
<directory "/upload/user">
       OptionsIndexes FollowSymLinks
</directory>

七 参数AllowOverride做权限控制 all(授权用户)

AllowOverride all
AllowOverride
 
--第一步,编辑httpd.conf文件,加入AllowOverride参数,并设置成all
[root@serv01 conf]# vim httpd.conf
[root@serv01 conf]# tail -n6 httpd.conf
Alias /up "/upload"
 
<directory "/upload/user">
       OptionsIndexes FollowSymLinks
       AllowOverrideall
</directory>
 
--第二步,在限制的文件夹里新建.htaccess文件,编辑如下内容
[root@serv01 user]# vim .htaccess
[root@serv01 user]# cat .htaccess
authuserfile"/etc/httpd/conf/htpasswd"
authtype basic
authname "please input your name andpassword"
require valid-user
[root@serv01 user]# pwd
/upload/user
 
--第三步,创建测试用户,这里创建的用户根系统帐号无关,所以无需配置成系统用户
[root@serv01 user]# htpasswd -c/etc/httpd/conf/htpasswd justdb
New password:
Re-type new password:
Adding password for user justdb
--第四步,重启服务
[root@serv01 conf]# /etc/init.d/httpd restart
Stopping httpd:                                           [  OK  ]
Starting httpd:                                           [  OK  ]
 
--第五步,测试
http://192.168.1.11/up/user/

八 网段IP限制

#先允许,后禁止,那么192.168.1.1不能访问
Order Allow,Deny
Allow from 192.168.1.1
Deny from all
#先禁止,后允许,那么192.168.1.1可以访问
Order Deny,Allow
Allow from 192.168.1.1
Deny from all
 
[root@serv01 conf]# tail -n11 httpd.conf
Alias /up "/upload"
 
<directory "/upload/user">
       OptionsIndexes FollowSymLinks
       AllowOverrideall
       OrderAllow,Deny
       Allowfrom 192.168.1.1
       #Denyfrom 192.168.1.1
       #Denyfrom all
       #Allowfrom 192.168.1.0/24
</directory>

九 用户个性化主页

--第一步,修改配置文件
[root@serv01 conf]# vim httpd.conf
[root@serv01 conf]# cat httpd.conf |grepUserDir -n
351:# UserDir: The name of the directory thatis appended onto a user's home
364:   # UserDir is disabled by default since it can confirm the presence
368:   #UserDir disabled
372:   # directory, remove the "UserDir disabled" line above, anduncomment
375:   UserDir public_html
380:# Control access to UserDirdirectories.  The following is an example
 
#
# Control access to UserDir directories.  The following is an example
# for a site where these directories arerestricted to read-only.
#
 
#以下可以打开或者保持注释,都可以正常完成功能
<Directory /home/*/public_html>
   AllowOverride FileInfo AuthConfig Limit
   Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
   <Limit GET POST OPTIONS>
       Order allow,deny
       Allow from all
   </Limit>
   <LimitExcept GET POST OPTIONS>
       Order deny,allow
       Deny from all
   </LimitExcept>
</Directory>
 
--第二步,添加用户
[root@serv01 home]# useradd larry01
[root@serv01 home]# useradd larry02
[root@serv01 home]# useradd larry03
 
--第三步,进入用户主目录,分别创建public_html文件夹,然后分别创建index.html文件,内容如下
[root@serv01 home]# cd larry01
[root@serv01 larry01]# mkdir public_html
[root@serv01 public_html]# vim index.html
 
[root@serv01 public_html]# cat/home/larry01/public_html/index.html
this is larry01 home dir
 
[root@serv01 home]# cd larry02
[root@serv01 larry01]# mkdir public_html
[root@serv01 public_html]# vim index.html
[root@serv01 public_html]# cat/home/larry02/public_html/index.html
this is larry02 home dir
 
[root@serv01 home]# cd larry03
[root@serv01 larry01]# mkdir public_html
[root@serv01 public_html]# vim index.html
[root@serv01 public_html]# cat/home/larry03/public_html/index.html
this is larry03 home dir
 
--第四步,修改家录权限(755或者777或者711,只需要有x的权限即可)
[root@serv01 public_html]# chmod 755/home/larry01
[root@serv01 public_html]# ll -d/home/larry01
drwxr-xr-x. 4 larry01 larry01 4096 Aug 1517:56 /home/larry01
 
[root@serv01 public_html]# chmod 755/home/larry02
[root@serv01 public_html]# ll -d/home/larry02
drwxr-xr-x. 4 larry01 larry02 4096 Aug 1517:56 /home/larry02
 
[root@serv01 public_html]# chmod 755/home/larry03
[root@serv01 public_html]# ll -d/home/larry03
drwxr-xr-x. 4 larry01 larry03 4096 Aug 1517:56 /home/larry03
 
--第五步,重启服务
[root@serv01 conf]# /etc/init.d/httpd restart
Stopping httpd:                                           [  OK  ]
Starting httpd:                                           [  OK  ]
 
--第六步,测试
输入:http://192.168.1.11/~larry01/
浏览器显示:this is larry01 home dir
 
输入:http://192.168.1.11/~larry02/
浏览器显示:this is larry02 home dir
 
输入:http://192.168.1.11/~larry03/
浏览器显示:this is larry03 home dir

十 其他参数

 

#主页是index.html index.html.var的参数控制
DirectoryIndex index.html index.html.var
 
#用户访问控制的文件名
AccessFileName .htaccess
 
#对文件的限制,拒绝访问.htaccess文件
<Files ~ "^\.ht">
   Order allow,deny
   Deny from all
   Satisfy All
</Files>
 
#类型配置文件
TypesConfig /etc/mime.types
 
#Web服务器支持传送的文件类型
[root@serv01 public_html]# cat/etc/mime.types
 
#默认类型
DefaultType text/plain
 
#错误日志文件存放位置
 ErrorLog logs/error_log
      
#日志警告级别
 LogLevel warn
      
#日志格式,后面的名字用于引用
LogFormat "%h %l %u %t\"%r\" %>s %b \"%{Referer}i\"\"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\"%>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
      
#自定义日志格式
 CustomLog logs/access_log combined
      
#服务器签名     
ServerSignature On
 #别名
Alias /icons/ "/var/www/icons/"
 
#语言支持
AddLanguage ca .ca
 
BrowserMatch "Mozilla/2"nokeepalive
BrowserMatch "MSIE 4\.0b2;"nokeepalive downgrade-1.0 force-response-1.0
BrowserMatch "RealPlayer 4\.0"force-response-1.0
BrowserMatch "Java/1\.0"force-response-1.0
BrowserMatch "JDK/1\.0"force-response-1.0
 
#错误的记录目录
Alias /error/ "/var/www/error/"

十一 CGI示例

--第一步,查看配置文件,不需要任何修改
ScriptAlias /cgi-bin/"/var/www/cgi-bin/"
 
--第二步,进入/var/www/cgi-bin/目录,编辑一个可执行的脚本
[root@serv01 public_html]# cd/var/www/cgi-bin/
[root@serv01 cgi-bin]# ll
total 0
[root@serv01 cgi-bin]# vim test.sh
[root@serv01 cgi-bin]# chmod a+x ./*
[root@serv01 cgi-bin]# cat test.sh
#!/bin/bash
 
echo "Content-type:text/html"
#小写亦可
echo "content-type:text/html"
 
echo ""
 
echo "hello,world"
[root@serv01 cgi-bin]# vim test.sh
[root@serv01 cgi-bin]# cat test.sh
#!/bin/bash
 
echo "Content-type:text/html"
echo ""
 
#echo "hello,world"
ps -ef
 
--第三步,测试
http://192.168.1.11/cgi-bin/test.sh

十二 浏览器调用C语言程序

--第一步,编写C语言程序
 [root@serv01 cgi-bin]# vim main.c
[root@serv01 cgi-bin]# cat main.c
#include <stdio.h>
 
int main(void)
{
       printf("Context-type:text/html\n\n\n");
       printf("helloworld!!!\n");
       return0;
}
--第二步,安装gcc和c++相关的rpm包
[root@serv01 cgi-bin]# yum install gcc c++*-y
 
--第三步,编译
[root@serv01 cgi-bin]# gcc main.c -o main
[root@serv01 cgi-bin]# ./main
Context-type:text/html
 
 
hello world!!!
 
--第四步,测试
http://192.168.1.11/cgi-bin/main
 
hello world!!!


十三 虚拟主机——不同的域名访问不同的主页——域名实现

 

#一个apache实现多个域名,www.larrywen.comwww.justdb.com

有三种实现方式,通过域名、IP地址和端口。其中基于域名实现虚拟主机最常用。

 

#不同的域名访问不同的主页——域名实现
 
--第一步,搭建DNS
--1.安装DNS相关RPM包
[root@serv02 ~]# yum install bind* -y
--2.编辑named.conf和named.rfc1912.zones文件
 
[root@serv02 etc]# vim named.conf
[root@serv02 etc]# vim named.rfc1912.zones
[root@serv02 named]# cat /etc/named.conf
options {
       listen-onport 53 { any; };
       allow-query     { any; };
};
 
[root@serv02 named]# tail -n11/etc/named.rfc1912.zones
zone "larrywen.com" IN {
       type master;
       file "larrywen.com.zone";
       allow-update { none; };
};
 
zone "justdb.com" IN {
       type master;
       file "justdb.com.zone";
       allow-update { none; };
};
--3.编辑larrywen.com.zone和justdb.com.zone文件
[root@serv02 named]# cp named.localhostlarrywen.com.zone -a
[root@serv02 named]# vim larrywen.com.zone
[root@serv02 named]# cp named.localhostjustdb.com.zone -a
[root@serv02 named]# vim justdb.com.zone
[root@serv02 named]# cat larrywen.com.zone
$TTL 1D
@    INSOA   dns.larrywen.com. root.larrywen.com.(
                                   0     ; serial
                                   1D   ; refresh
                                   1H   ; retry
                                   1W  ; expire
                                   3H)       ; minimum
       NS   dns.larrywen.com.
dns  IN    A     192.168.1.12
www      IN    A     192.168.1.11
[root@serv02 named]# cat justdb.com.zone
$TTL 1D
@    INSOA   dns.justdb.com. root.justdb.com. (
                                   0     ; serial
                                   1D   ; refresh
                                   1H   ; retry
                                   1W  ; expire
                                   3H)       ; minimum
       NS   dns.justdb.com.
dns  IN    A     192.168.1.12
www      IN    A     192.168.1.11
--4.重启服务
[root@serv02 named]# /etc/init.d/named start
Starting named:                                           [  OK  ]
--5.虚拟机做测试,安装bind-utils
[root@serv01 cgi-bin]# yum install bind-utils-y
[root@serv01 cgi-bin]# vim /etc/resolv.conf
[root@serv01 cgi-bin]# cat /etc/resolv.conf
nameserver 192.168.1.12
[root@serv01 cgi-bin]# dig www.larrywen.com+short
192.168.1.11
[root@serv01 cgi-bin]# dig www.justdb.com+short
192.168.1.11
 
--第二步,修改配置文件httpd.conf
[root@serv01 conf]# cat httpd.conf
NameVirtualHost *:80
 
<VirtualHost *:80>
   ServerAdmin root@larrywen.com
   DocumentRoot /larrywen
   ServerName www.larrywen.com
   ErrorLog logs/dummy-host.larrywen.com-error_log
   CustomLog logs/dummy-host.larrywen.com-access_log common
</VirtualHost>
<VirtualHost *:80>
   ServerAdmin root@justdb.com
   DocumentRoot /justdb
   ServerName www.justdb.com
   ErrorLog logs/dummy-host.justdb.com-error_log
   CustomLog logs/dummy-host.justdb.com-access_log common
</VirtualHost>
 
--第三步,真实机加上DNS解析
[root@larrywen 0815]# echo "nameserver192.168.1.12" > /etc/resolv.conf
[root@larrywen 0815]# cat /etc/resolv.conf
nameserver 192.168.1.12
#真实机做测试
[root@larrywen 0815]# dig www.larrywen.com+short
192.168.1.11
[root@larrywen 0815]# dig www.justdb.com+short
192.168.1.11
 
--第四步,虚拟机(Serv01)重启服务
[root@serv01 conf]# /etc/init.d/httpd restart
Stopping httpd:                                           [  OK  ]
Starting httpd:                                           [  OK  ]
 
--第五步,测试
http://www.justdb.com/
http://www.larrywen.com/


十四 虚拟主机——不同的IP地址访问不同的主页——IP地址实现

 
192.168.1.11对应http://www.larrywen.com/
 
172.16.1.11对应http://www.justdb.com/
 
--第一步,添加网卡,修改IP地址
[root@serv01 cgi-bin]# ifconfig eth1172.16.1.11 netmask 255.255.255.0
[root@serv01 cgi-bin]# ifconfig eth1|grep"inet addr"
         inet addr:172.16.1.11 Bcast:172.16.1.255  Mask:255.255.255.0
 
--第二步,修改配置文件
[root@serv01 conf]# vim httpd.conf
[root@serv01 conf]# cat httpd.conf
#<VirtualHost *:80>
 
   <VirtualHost 192.168.1.11:80>
   DocumentRoot /larrywen
   ServerName serv01.host.com
</VirtualHost>
<VirtualHost 172.16.1.11:80>
   DocumentRoot /justdb
   ServerName serv01.host.com
</VirtualHost>
 
--第三步,重启服务
[root@serv01 conf]# /etc/init.d/httpd restart
Stopping httpd:                                           [  OK  ]
Starting httpd:                                            [  OK  ]
 
--第四步,测试
http://192.168.1.11
this is larrywen
http://172.16.1.11/
this is justdb

十五 虚拟主机——不同的IP地址访问不同的主页——端口实现

--第一步,修改配置文件
[root@serv01 conf]# cat httpd.conf
Listen 80
Listen 8080
<VirtualHost *:80>
   DocumentRoot /larrywen
</VirtualHost>
<VirtualHost *:8080>
   DocumentRoot /justdb
</VirtualHost>
[root@serv01 conf]# netstat -lanput|grephttpd
tcp       0      0 :::8080                     :::*                        LISTEN      1950/httpd         
tcp       0      0 :::80                       :::*                        LISTEN      1950/httpd
 
--第二步,重启服务
[root@serv01 conf]# /etc/init.d/httpd restart
Stopping httpd:                                           [  OK  ]
Starting httpd:                                           [  OK  ]
 
--第三步,测试
http://192.168.1.11/
this is larrywen
 
http://192.168.1.11:8080/
this is justdb



  我的邮箱wgbno27@163.com
  新浪微博@Wentasy27         
  微信公众平台:JustOracle(微信号:justoracle)
  数据库技术交流群:336882565(加群时验证 From CSDN XXX)
  By Larry Wen


katoonSina CSDN
@Wentasy 博文仅供参考,欢迎大家来访。如有错误之处,希望批评指正。原创博文如需转载请注明出处,谢谢 :) [CSDN博客]
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值