3.2.5虚拟主机配置

Apache的虚拟主机功能是服务器基于用户请求的不同IP地址、主机域名或端口号,提供多个网站同时为外部提供访问服务的技术。

基于IP地址的虚拟主机

1)配置IP地址,确保IP正常访问。

图片[1]-3.2.5虚拟主机配置-大赛人网
图3-9 使用nmtui命令配置网络参数-设置IP地址
[root@dsrw ~]# nmcli connection up ens160
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/15)

2)在/home/wwwt中创建用于保存不同网站数据的3个目录,并向其中分别写入网站的首页文件。

[root@dsrw ~]# mkdir -p /home/www/2
[root@dsrw ~]# mkdir -p /home/www/3
[root@dsrw ~]# mkdir -p /home/www/4
[root@dsrw ~]# echo "IP: 192.168.10.2" >/home/www/2/index.html
[root@dsrw ~]# echo "IP: 192.168.10.3" >/home/www/3/index.html
[root@dsrw ~]# echo "IP: 192.168.10.4" >/home/www/4/index.html

3)设置SELinux安全上下文,使用restorecon命令让立即生效

[root@dsrw ~]# semanage fcontext -a -t httpd_sys_content_t /home/www
ValueError: /home/www 的文件上下文已定义
[root@dsrw ~]# semanage fcontext -a -t httpd_sys_content_t /home/www/2
[root@dsrw ~]# semanage fcontext -a -t httpd_sys_content_t /home/www/2/*
[root@dsrw ~]# semanage fcontext -a -t httpd_sys_content_t /home/www/3
[root@dsrw ~]# semanage fcontext -a -t httpd_sys_content_t /home/www/3/*
[root@dsrw ~]# semanage fcontext -a -t httpd_sys_content_t /home/www/4
[root@dsrw ~]# semanage fcontext -a -t httpd_sys_content_t /home/www/4/*
[root@dsrw ~]# restorecon -Rv /home/www

4)修改配置文件,并重新启动服务

vim /etc/httpd/conf/httpd.conf
122 DocumentRoot "/home/www"
127 <Directory "/home/www">
128     AllowOverride None
129     # Allow open access:
130     Require all granted
131 </Directory>
133 <VirtualHost 192.168.10.2>
134       DocumentRoot /home/www/2
135       ServerName www.dsrw.com
136      <Directory /home/www/2>
137      AllowOverride None
138      Require all granted
139      </Directory>
140 </VirtualHost>
142 <VirtualHost 192.168.10.3>
143       DocumentRoot /home/www/3
144       ServerName www.dsrw.com
145      <Directory /home/www/3>
146      AllowOverride None
147      Require all granted
148      </Directory>
149 </VirtualHost>
151 <VirtualHost 192.168.10.4>
152       DocumentRoot /home/www/4
153       ServerName www.dsrw.com
154      <Directory /home/www/4>
155      AllowOverride None
156      Require all granted
157      </Directory>
158 </VirtualHost>

5)测试基于不同的IP地址访问虚拟主机网站

图片[2]-3.2.5虚拟主机配置-大赛人网
图3-10 访问192.168.10.2虚拟主机
图片[3]-3.2.5虚拟主机配置-大赛人网
图3-11 访问192.168.10.3虚拟主机
图片[4]-3.2.5虚拟主机配置-大赛人网
图3-12 访问192.168.10.4虚拟主机

2.基于主机域名的虚拟主机

1)设置IP地址与域名之间对应关系的配置文件,保存并退出后会立即生效。

[root@dsrw ~]# vim /etc/hosts
192.168.10.2 www.dsrw.com www.dsrw.cn www.dsrw.com.cn

[root@dsrw ~]# ping www.dsrw.com
PING www.dsrw.com (192.168.10.2) 56(84) bytes of data.
64 bytes from www.dsrw.com (192.168.10.2): icmp_seq=1 ttl=64 time=0.046 ms
[root@dsrw ~]# ping www.dsrw.cn
PING www.dsrw.com (192.168.10.2) 56(84) bytes of data.
64 bytes from www.dsrw.com (192.168.10.2): icmp_seq=1 ttl=64 time=0.088 ms
root@dsrw ~]# ping www.dsrw.com.cn
PING www.dsrw.com (192.168.10.2) 56(84) bytes of data.
64 bytes from www.dsrw.com (192.168.10.2): icmp_seq=1 ttl=64 time=0.051 ms

2)创建网站对应目录,设置主页

[root@dsrw ~]# mkdir /home/www/dsrwcom
[root@dsrw ~]# mkdir /home/www/dsrwcn
[root@dsrw ~]# mkdir /home/www/dsrwcomcn
[root@dsrw ~]# echo "192.168.10.2 www.dsrw.com" >/home/www/dsrwcom/index.html
[root@dsrw ~]# echo "192.168.10.2 www.dsrw.cn" >/home/www/dsrwcn/index.html
[root@dsrw ~]# echo "192.168.10.2 www.dsrw.com.cn" >/home/www/dsrwcomcn/index.html

3)设置SELinux安全上下文,使用restorecon命令让立即生效

[root@dsrw www]# semanage fcontext -a -t httpd_sys_content_t /home/www
[root@dsrw www]# semanage fcontext -a -t httpd_sys_content_t /home/www/dsrwcom
[root@dsrw www]# semanage fcontext -a -t httpd_sys_content_t /home/www/dsrwcom/*
[root@dsrw www]# semanage fcontext -a -t httpd_sys_content_t /home/www/dsrwcn
[root@dsrw www]# semanage fcontext -a -t httpd_sys_content_t /home/www/dsrwcn/*
[root@dsrw www]# semanage fcontext -a -t httpd_sys_content_t /home/www/dsrwcomcn
[root@dsrw www]# semanage fcontext -a -t httpd_sys_content_t /home/www/dsrwcomcn/*
[root@dsrw www]# restorecon -Rv /home/www

4)配置httpd服务的配置文件,重启httpd服务。

[root@dsrw ~]# vim /etc/httpd/conf/httpd.conf
133 <VirtualHost 192.168.10.2>
134       DocumentRoot /home/www/dsrwcom
135       ServerName www.dsrw.com
136      <Directory /home/www/dsrwcom>
137      AllowOverride None
138      Require all granted
139      </Directory>
140 </VirtualHost>

142 <VirtualHost 192.168.10.2>
143       DocumentRoot /home/www/dsrwcn
144       ServerName www.dsrw.cn
145      <Directory /home/www/dsrwcn>
146      AllowOverride None
147      Require all granted
148      </Directory>
149 </VirtualHost>

152 <VirtualHost 192.168.10.2>
153       DocumentRoot /home/www/dsrwcomcn
154       ServerName www.dsrw.com.cn
155      <Directory /home/www/dsrwcomcn>
156      AllowOverride None
157      Require all granted
158      </Directory>
159 </VirtualHost>
[root@dsrw www]# systemctl restart httpd

5)测试基于不同域名访问虚拟主机网站

[root@dsrw www]# firefox
图片[5]-3.2.5虚拟主机配置-大赛人网
图3-13基于www.dsrw.com网站
图片[6]-3.2.5虚拟主机配置-大赛人网
图3-14基于www.dsrw.cn网站
图片[7]-3.2.5虚拟主机配置-大赛人网
图3-15基于www.dsrw.com.cn网站

3.基于端口号的虚拟主机

1)在/home/wwwt中创建用于保存不同网站数据的3个目录,并写入网站的首页文件。

[root@dsrw www]# mkdir -p /home/www/8102
[root@dsrw www]# mkdir -p /home/www/8103
[root@dsrw www]# mkdir -p /home/www/8104
[root@dsrw www]# echo "port: 8102" > /home/www/8102/index.html
[root@dsrw www]# echo "port: 8103" > /home/www/8103/index.html
[root@dsrw www]# echo "port: 8104" > /home/www/8104/index.html

2)在httpd服务配置文件添加用于监听8102、8103、8104端口

[root@dsrw www]# vim /etc/httpd/conf/httpd.conf
 46 Listen 8102
 47 Listen 8103
 48 Listen 8104
136 <VirtualHost 192.168.10.2:8102>
137       DocumentRoot /home/www/8102
138       ServerName www.dsrw.com
139      <Directory /home/www/8102>
140      AllowOverride None
141      Require all granted
142      </Directory>
143 </VirtualHost>
144 
145 <VirtualHost 192.168.10.2:8103>
146       DocumentRoot /home/www/8103
147       ServerName www.dsrw.cn
148      <Directory /home/www/8103>
149      AllowOverride None
150      Require all granted
151      </Directory>
152 </VirtualHost>
153 
154 <VirtualHost 192.168.10.2:8104>
155       DocumentRoot /home/www/8104
156       ServerName www.dsrw.com.cn
157      <Directory /home/www/8104>
158      AllowOverride None
159      Require all granted
160      </Directory>
161 </VirtualHost>
[root@dsrw www]# systemctl restart httpd

4)设置SELinux安全上下文,使用restorecon命令让立即生效

[root@dsrw www]# semanage fcontext -a -t httpd_sys_content_t /home/www
ValueError: /home/www 的文件上下文已定义
[root@dsrw www]# semanage fcontext -a -t httpd_sys_content_t /home/www/8102
[root@dsrw www]# semanage fcontext -a -t httpd_sys_content_t /home/www/8102/*
[root@dsrw www]# semanage fcontext -a -t httpd_sys_content_t /home/www/8103
[root@dsrw www]# semanage fcontext -a -t httpd_sys_content_t /home/www/8103/*
[root@dsrw www]# semanage fcontext -a -t httpd_sys_content_t /home/www/8104
[root@dsrw www]# semanage fcontext -a -t httpd_sys_content_t /home/www/8104/*
[root@dsrw www]# restorecon -Rv /home/www

5)将这3个端口号添加到HTTP协议相关且SELinux服务允许的端口列表。

[root@dsrw www]#semanage port -a -t http_port_t -p tcp 8102
[root@dsrw www]#semanage port -a -t http_port_t -p tcp 8103
[root@dsrw www]#semanage port -a -t http_port_t -p tcp 8104

6)命令查询并过滤出所有与HTTP协议相关且SELinux服务允许的端口列表。

[root@dsrw www]# semanage port -l| grep http
http_cache_port_t              tcp      8080, 8118, 8123, 10001-10010
http_cache_port_t              udp      3130
http_port_t                    tcp      8104, 8103, 8102, 80, 81, 443, 488, 8008, 8009, 8443, 9000
pegasus_http_port_t            tcp      5988
pegasus_https_port_t           tcp      5989
pegasus_https_port_t           tcp      5989

7)重启httpd服务,打开浏览器测试

图片[8]-3.2.5虚拟主机配置-大赛人网
图片[9]-3.2.5虚拟主机配置-大赛人网
图3-16 基于端口的网站
图片[10]-3.2.5虚拟主机配置-大赛人网
图片[11]-3.2.5虚拟主机配置-大赛人网
图3-17 基于端口的网站
图片[12]-3.2.5虚拟主机配置-大赛人网
图片[13]-3.2.5虚拟主机配置-大赛人网
图3-18 基于端口的网站
© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称

    请登录后查看评论内容