linux[基础]-29-[Apache服务]-[虚拟主机]-[04]

Apache服务

  top4:虚拟网站主机功能

 

 Apache虚拟主机功能是可以让一台服务器基于IP、主机名、端口实现提供多个网站服务

 

p1:基于IP地址

 

使用nmtui命令为网卡添加多个IP地址(192.168.200.102/103/104):

[[email protected] ~]# nmtui

 重启网络服务:

[[email protected] ~]# systemctl restart network

分别创建网站数据目录:

[[email protected] ~]# mkdir -p /home/wwwroot/102

[[email protected] ~]# mkdir -p /home/wwwroot/103

[[email protected] ~]# mkdir -p /home/wwwroot/104

分别将数据写入各个网站的index.html文件中:

[[email protected] ~]# echo "ip: 192.168.200.102" >> /home/wwwroot/102/index.html

[[email protected] ~]# echo "ip: 192.168.200.103" >> /home/wwwroot/103/index.html

[[email protected] ~]# echo "ip: 192.168.200.104" >> /home/wwwroot/104/index.html

在配置文件中添加描述基于IP地址:

<VirtualHost 192.168.200.102>

DocumentRoot /home/wwwroot/102

ServerName www.CnBlogs.com

<Directory /home/wwwroot/102>

AllowOverride None

Require all granted

</Directory>

</VirtualHost>

<VirtualHost 192.168.200.103>

DocumentRoot /home/wwwroot/103

ServerName news.CnBlogs.com

<Directory /home/wwwroot/103>

AllowOverride None

Require all granted

</Directory>

</VirtualHost>

<VirtualHost 192.168.200.104>

DocumentRoot /home/wwwroot/104

ServerName bbs.CnBlogs.com

<Directory /home/wwwroot/104>

AllowOverride None

Require all granted

</Directory>

</VirtualHost>

修改网站数据目录的selinux安全上下文:

[[email protected] ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/102/

[[email protected] ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/102/*

[[email protected] ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/103/

[[email protected] ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/103/*

[[email protected] ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/104

[[email protected] ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/104/*

[[email protected] ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/

恢复selinux安全上下文:

[[email protected] ~]# restorecon -Rv /home/wwwroot/

[[email protected] ~]# systemctl restart httpd.service

结果:

 

 

 

p2:基于主机名

 

配置本地hosts解析:

[[email protected] ~]# echo "192.168.200.102 www.cnblogs.com" >> /etc/hosts

[[email protected] ~]# echo "192.168.200.103 news.cnblogs.com" >> /etc/hosts

[[email protected] ~]# echo "192.168.200.104 bbs.cnblogs.com" >> /etc/hosts

[[email protected] ~]# cat /etc/hosts | grep "cnblogs"

  192.168.200.102 www.cnblogs.com

  192.168.200.103 news.cnblogs.com

  192.168.200.104 bbs.cnblogs.com

 

 

创建网站数据目录:

[[email protected] ~]# mkdir -p /home/wwwroot/www

[[email protected] ~]# mkdir -p /home/wwwroot/news

[[email protected] ~]# mkdir -p /home/wwwroot/bbs

分别写入数据到各个网站:

[[email protected] ~]# echo "www.cnblogs.com" >> /home/wwwroot/www/index.html

[[email protected] ~]# echo "news.cnblogs.com" >> /home/wwwroot/news/index.html

[[email protected] ~]# echo "bbs.cnblogs.com" >> /home/wwwroot/bbs/index.html

修改配置文件:

[[email protected] ~]# vim /etc/httpd/conf/httpd.conf

  <VirtualHost 192.168.200.102>

  DocumentRoot /home/wwwroot/www

  ServerName "www.CnBlogs.com"

  <Directory /home/wwwroot/www>

  AllowOverride None

  Require all granted

  </Directory>

  </VirtualHost>   

  <VirtualHost 192.168.200.103>

  DocumentRoot /home/wwwroot/news

  ServerName "news.CnBlogs.com"

  <Directory /home/wwwroot/news>

  AllowOverride None

  Require all granted

  </Directory>

  </VirtualHost>

  <VirtualHost 192.168.200.104>

  DocumentRoot /home/wwwroot/bbs

  ServerName "bbs.CnBlogs.com"

  <Directory /home/wwwroot/bbs>

  AllowOverride None

  Require all granted

  </Directory>

  </VirtualHost>

重启apache:

[[email protected] ~]# systemctl restart httpd.service

修改网站目录的selinux安全上下文:

[[email protected] ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/www/

[[email protected] ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/www/*

[[email protected] ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/news/

[[email protected] ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/news/*

[[email protected] ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/bbs/

[[email protected] ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/bbs/*

结果:

  需要在本地hosts文件添加解析记录

   

 

 

p3:基于端口号

 

创建网站数据目录:

[[email protected] ~]# mkdir -p /home/wwwroot/6666

[[email protected] ~]# mkdir -p /home/wwwroot/8888

写入数据到网站目录:

[[email protected] ~]# echo "port:6666" >> /home/wwwroot/6666/index.html

[[email protected] ~]# echo "port:8888" >> /home/wwwroot/8888/index.html

编辑配置文件:

[[email protected] ~]# vim /etc/httpd/conf/httpd.conf

  1. 添加监听端口    
Listen 6666

Listen 8888
  1. 修改配置文件
<VirtualHost 192.168.200.102:6666>

DocumentRoot /home/wwwroot/6666

ServerName www.CnBlogs.com

<Directory /home/wwwroot/6666>

AllowOverride None

Require all granted

</Directory>

</VirtualHost>

<VirtualHost 192.168.200.102:8888>

DocumentRoot /home/wwwroot/8888

ServerName news.CnBlogs.com

<Directory /home/wwwroot/8888>

AllowOverride None

Require all granted

</Directory>

</VirtualHost>

重启apache:

[[email protected] ~]# systemctl restart httpd.service

设置网站目录的selinux安全上下文:

[[email protected] ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/6666/

[[email protected] ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/6666/*

[[email protected] ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/8888/

[[email protected] ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/8888/*

设置selinux服务中有关http服务的端口号:

[[email protected] ~]# semanage port -l | grep -e "^http_port_t"

http_port_t       tcp      80, 81, 443, 488, 8008, 8009, 8443, 9000

[[email protected] ~]# semanage port -a -t http_port_t -p tcp 6666

[[email protected] ~]# semanage port -a -t http_port_t -p tcp 8888

[[email protected] ~]# semanage port -l | grep -e "^http_port_t"

http_port_t     tcp      8888, 6666, 80, 81, 443, 488, 8008, 8009,

添加防火墙规则(允许6666、8888端口):

[[email protected] ~]# firewall-cmd --permanent --add-port=6666/tcp

success

[[email protected] ~]# firewall-cmd --permanent --add-port=8888/tcp

success

[[email protected] ~]# firewall-cmd --reload

success

[[email protected] ~]# firewall-cmd --permanent --list-ports

6666/tcp 8888/tcp

结果:

 

 

 

 

 

时间: 2024-07-29 09:43:09

linux[基础]-29-[Apache服务]-[虚拟主机]-[04]的相关文章

Linux apache开启虚拟主机伪静态.htaccess

打开apache配置文件 /etc/httpd/conf/httpd.conf 查找"#LoadModule rewrite_module modules/mod_rewrite.so" 去掉前面的#号,如果没有的话就添加这句话,记得不要带#号. 允许在任何目录中使用".htaccess"文件,将httpd.conf配置文件内这句"AllowOverride"改成"All"(默认为"None"): Allo

[Linux]Apache配置虚拟主机

Apache 配置虚拟主机的方式很多,种类也很多,主要分为两类: 基于名称的虚拟主机 (每个 IP 多个站点) 基于 IP 的虚拟主机 (每个 IP 一个站点) 基于名称的虚拟主机:  www.2cto.com 在windows下  Apache 的配置文件 conf/httpd.conf 中加载 虚拟主机配置文件  /extra/httpd-vhosts.conf 找到 Include "conf/extra/httpd-vhosts.conf" 取消注释即可. 现在,到httpd-

linux下apache https 虚拟主机配置

如果单纯只想在传输数据时加密传输,那么ssl证书是不需要认证的,但是浏览器打开时会有警告信息.假设我们做的不是一个公众产品那么也还好啦. 如下是今天学习时的一个笔记,其实我用的是真实环境. 环境:CentOS 64, 32bit:Apache 2.2.15: 1.检查apache是否安装了mod_ssl.so模块. 检查方法是查看是否在modules(/etc/httpd/modules/)下存在.不存在那么安装(yum -y install mod_ssl). 2.生成证书和密钥 1)生成密钥

Apache多虚拟主机多版本PHP(5.3+5.6+N)共存运行配置全过程

摘要: 为需要实现在同一台Linux服务器上面,同时运行多个不同版本的PHP程序,本文我们将使用FastCGI方式加载,并把过程详细记录下来方便大家参考. 常规的PHP配置方式有很多种,例如CGI.fast-cgi.apache module handle.cli.isapi这些. CGI (通用网关接口 / Common Gateway Interface) Fast CGI (常驻型CGI / Long-Live CGI) CLI (命令行运行 / Command Line Interfac

windows下Apache的虚拟主机配置

1.Apache虚拟主机: 在Apache上有关于虚拟主机的具体说明,具体可以参考Apache手册,这里简单的说一下虚拟主机主要分为两种: 1.基于主机名的虚拟主机(一个IP地址,多个网站) 2.基于IP地址的虚拟主机(每个站点拥有一个的独立IP地址) 虽然是两种,但其实仔细比对,就能发现:基于主机名的其实非常像一个特殊的基于IP地址的方式,如何实现虚拟主机,思路是这样的: 2.windows下:  基于主机名  设置DNS(windows上的 / hosts文件),好让我们的域名被解析到特定的

LAMP架构(apache与php结合,apache默认虚拟主机)

一.apache与php结合 主配置文件/usr/local/apache2.4/conf/httpd.conf [[email protected] ~]# /usr/local/apache2.4/bin/apachectl graceful  (重新加载服务,并不重启服务) [[email protected] ~]# /usr/local/apache2.4/bin/apachectl start    (启动httpd服务) AH00558: httpd: Could not reli

LAMP(4)Apach和php结合、Apache默认虚拟主机

                        Apach和php结合 1.修改apache配置文件   vim /usr/local/apache2.4/conf/httpd.conf (1)修改ServerName  把前面注释的#取消 (这里在启动httpd的时候,会提示要定义一个ServerName,若定义了则在启动时就不会再提示) 在window浏览器中访问我们的linux机器的ip: 出现这种问题的时候:我们首先排查网络的原因(在window测试) 第一步:ping 192.168.

《Apache之虚拟主机的配置》——RHEL6.3

1.安装httpd软件包: Yum install httpd 2.启动apache服务: [[email protected] Desktop]# /etc/init.d/httpd start Starting httpd:                                            [  OK  ] 3.安装mod-ssl软件包 [[email protected] Desktop]# yum install mod_ssl –y 4.创建一个/date/www/

apache添加虚拟主机配置+本地hosts绑定域名

1.本地hosts 什么是本地hosts?我们知道访问一个域名,通过dns服务器得到该域名所指向的服务器ip地址,然后通过ip地址和服务器建立连接,完成剩下的事情.那么当开发过程中我们没有域名的时候如何才能模拟一个域名呢?答案就是hosts文件,一般开发环境都是在win下,所以这里就以win为例,玩linux的相信自己都能摸索到. 我们找到c:\windows\system32\drivers\etc\hosts文件,用记事本打开它,在末尾添加一行: 127.0.0.1 www.xxx.com