文章目录
1, httpd2.4
a, 源码编译httpd
官网指南:http://httpd.apache.org/docs/2.4/install.html
其他博客参考: https://www.cnblogs.com/ysuwangqiang/p/11445487.html
# 1, 下载依赖源码包: apr, apr-util , pcre
# pcre需要编译安装
# apr, apr-util解压到apache-xx/src/lib/目录下(不带版本号)
[root@c7 ~]# ls httpd-2.4.41/srclib/
apr apr-util Makefile Makefile.in
# 2, 下载编译工具
yum groupinstall "Development tools"
yum -y install expat-devel
# 3, 编译安装
./configure --prefix=/usr/local/apr ; make && make install
./configure --prefix=/usr/local/apr-util ; make && make install
./configure --prefix=/usr/local/pcre --with-apr=/usr/local/apr/ ; make && make install
./configure \
--prefix=/usr/local/apache2\
--enable-rewrite \
--with-apr=/usr/local/apr \
--with-apr-util=/usr/local/apr-util \
--with-pcre=/usr/local/pcre/ #或bin/pcre-config二进制文件所在的路径
make && make install
# 4,启动httpd
cp /usr/local/httpd2.4/bin/apachectl /etc/init.d/httpd
sed -i "2i#chkconfig: 235 20 80" /etc/init.d/httpd
chkconfig httpd on
service httpd start
#/usr/local/apache2/bin/apachectl -k start
[vagrant@c6 ~]$ ls /usr/local/httpd2.4/htdocs/
index.html
[vagrant@c6 ~]$ cat /usr/local/httpd2.4/htdocs/index.html
<html><body><h1>It works!</h1></body></html>
[vagrant@c6 ~]$ curl localhost/index.html
<html><body><h1>It works!</h1></body></html>
b,配置httpd的vhost(虚拟主机)
官网指南:http://httpd.apache.org/docs/2.4/vhosts/
1, 基于hostname
[root@c7 conf.d]# cat vhost_hostname.conf
<VirtualHost *:80>
ServerName www.a.com
ServerAlias a.com
DocumentRoot "/www/a"
</VirtualHost>
<VirtualHost *:80>
ServerName www.b.com
DocumentRoot "/www/b"
</VirtualHost>
<Directory /www/?>
AllowOverride None
Require all granted
</Directory>
#配置站点访问文件
[root@c7 conf.d]# mkdir -p /www/{a,b}
[root@c7 conf.d]# echo "aa" >/www/a/index.html
[root@c7 conf.d]# echo "bb" >/www/b/index.html
[root@c7 conf.d]# cat /etc/hosts
192.168.56.104 c7 www.a.com www.b.com
# 重载httpd服务
[root@c7 conf.d]# systemctl reload httpd
[root@c7 conf.d]# curl http://a.com
aa
[root@c7 conf.d]# curl http://www.a.com
aa
[root@c7 conf.d]# curl http://www.b.com
bb
2, 基于port
[root@c7 conf.d]# cat vhost_port.conf
Listen 192.168.56.104:180
<VirtualHost 192.168.56.104:180>
ServerAdmin [email protected]
DocumentRoot "/www/vhosts/www1"
ServerName www1.example.com
ErrorLog "/www/logs/www1/error_log"
CustomLog "/www/logs/www1/access_log" combined
</VirtualHost>
Listen 192.168.56.104:280
<VirtualHost 192.168.56.104:280>
ServerAdmin [email protected]
DocumentRoot "/www/vhosts/www2"
ServerName www2.example.org
ErrorLog "/www/logs/www2/error_log"
CustomLog "/www/logs/www2/access_log" combined
</VirtualHost>
<Directory /www/vhosts/*>
AllowOverride None
Require all granted
</Directory>
#配置站点访问文件
[root@c7 ~]# mkdir /www/{vhosts,logs}/www{1,2} -p
[root@c7 conf.d]# echo "www1.example.com"> /www/vhosts/www1/index.html
[root@c7 conf.d]# echo "www2.example.com"> /www/vhosts/www2/index.html
[root@c7 conf.d]# curl 192.168.56.104:180
www1.example.com
[root@c7 conf.d]# curl 192.168.56.104:280
www2.example.com
3, 基于IP
[root@c7 conf.d]# cat vhost_ip.conf
<VirtualHost 192.168.56.104:80>
ServerAdmin [email protected]
DocumentRoot "/www/vhosts/www1"
ServerName www1.example.com
ErrorLog "/www/logs/www1/error_log"
CustomLog "/www/logs/www1/access_log" combined
</VirtualHost>
<VirtualHost 10.0.2.15:80>
ServerAdmin [email protected]
DocumentRoot "/www/vhosts/www2"
ServerName www2.example.org
ErrorLog "/www/logs/www2/error_log"
CustomLog "/www/logs/www2/access_log" combined
</VirtualHost>
<Directory /www/vhosts/*>
AllowOverride None
Require all granted
</Directory>
#查看主机的 多个网卡设备地址
[root@c7 conf.d]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:21:94:45 brd ff:ff:ff:ff:ff:ff
inet 10.0.2.15/24 brd 10.0.2.255 scope global noprefixroute dynamic enp0s3
valid_lft 57470sec preferred_lft 57470sec
inet6 fe80::4d9f:62b0:7183:4082/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:3e:b2:95 brd ff:ff:ff:ff:ff:ff
inet 192.168.56.104/24 brd 192.168.56.255 scope global noprefixroute enp0s8
valid_lft forever preferred_lft forever
inet6 fe80::b0d9:883b:4a3c:287e/64 scope link noprefixroute
valid_lft forever preferred_lft forever
#配置站点访问文件
[root@c7 ~]# mkdir /www/{vhosts,logs}/www{1,2} -p
[root@c7 conf.d]# echo "www1.example.com"> /www/vhosts/www1/index.html
[root@c7 conf.d]# echo "www2.example.com"> /www/vhosts/www2/index.html
[root@c7 conf.d]# systemctl restart httpd
[root@c7 conf.d]# curl http://192.168.56.104:80
www1.example.com
[root@c7 conf.d]# curl http://10.0.2.15:80
www2.example.com
2, httpd2.2
基于port
[root@c6 conf.d]# rpm -q httpd
httpd-2.2.15-69.el6.centos.x86_64
[root@c6 conf.d]# cat /var/www/html/index.html
index:80
[root@c6 conf.d]# cat vhost.conf
Listen 81
#NameVirtualHost 192.168.56.109:81
<VirtualHost 192.168.56.109:81>
ServerAdmin [email protected]
DocumentRoot "/www/vhosts/www1"
ServerName www1.com
ErrorLog "/www/logs/www1/error_log"
CustomLog "/www/logs/www1/access_log" combined
</VirtualHost>
Listen 82
#NameVirtualHost 192.168.56.109:82
<VirtualHost 192.168.56.109:82>
ServerAdmin [email protected]
DocumentRoot "/www/vhosts/www2"
ServerName www2.com
ErrorLog "/www/logs/www2/error_log"
CustomLog "/www/logs/www2/access_log" combined
</VirtualHost>
[root@c6 conf.d]# service httpd restart
Stopping httpd: [ OK ]
Starting httpd: [ OK ]
[root@c6 conf.d]# curl c6:80
index:80
[root@c6 conf.d]# curl c6:81
web1.index
[root@c6 conf.d]# curl c6:82
web2.index