httpd源码编译, 配置vhost

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
发布了276 篇原创文章 · 获赞 37 · 访问量 11万+

猜你喜欢

转载自blog.csdn.net/eyeofeagle/article/details/103754637