Linux下Web服务器应用之虚拟主机

简介:

Linux下Web服务器应用之虚拟主机

虚拟主机是在网络服务器上划分出一定的磁盘空间供用户放置站点、应用组件等,提供必要的站点功能、数据存放和传输功能。所谓虚拟主机,也叫“网站空间”,就是把一台运行在互联网上的服务器划分成多个“虚拟”的服务器,每一个虚拟主机都具有独立的域名和完整的Internet服务器(支持WWW,FTP,E-mail等)功能。虚拟主机:通过一个web 服务器可以提供多个网站服务。需要占用一个独特(排他性)的资源来提供服务。
Linux 下实现虚拟主机的方法:
1.    物理目录
2.    虚拟目录
3.    基于ip地址的虚拟主机
4.    基于端口的虚拟主机
5.    基于主机头的虚拟主机
主要配置文件:/etc/httpd/conf/httpd.conf
993 #<VirtualHost *:80>
994 #    ServerAdmin webmaster@dummy-host.example.com
995 #    DocumentRoot /www/docs/dummy-host.example.com
996 #    ServerName dummy-host.example.com
997 #    ErrorLog logs/dummy-host.example.com-error_log
998 #    CustomLog logs/dummy-host.example.com-access_log common
999 #</VirtualHost>
案例1:基于物理目录的虚拟主机
[root@www ~]# cd /var/www/html/      # 切换至web目录下
[root@www html]# mkdir download      # 创建供下载的目录
[root@www download]# touch f1 f2 f3 # 创建供下载的文件
[root@www ~]# vim /etc/httpd/conf/httpd.conf     # 编辑配置文件

[root@www ~]# service httpd restart          # 重启apache服务
Win7 客户端测试结果如下:

案例2:基于虚拟目录的虚拟主机
[root@www ~]# mkdir /qq         # 创建物理目录
[root@www ~]# cd /qq              # 切换至要制作成虚拟的目录
[root@www qq]# touch qq1 qq2 qq3     # 创建文件
[root@www qq]# vim /etc/httpd/conf/httpd.conf         # 编辑配置文件

[root@www ~]# service httpd restart          # 重启apache服务
Win7 客户端测试结果如下:

案例3:基于ip地址的虚拟主机
[root@www ~]# cd /var/www/     # 切换至www文件目录
[root@www www]# mkdir tec          # 创建tec文件夹
[root@www www]# mkdir mkt         # 创建mkt文件夹
[root@www www]# cat html/index.html    # 编辑www网页文件                          
--www
--xjzhujunjie
--2012/03/17
[root@www www]# cat mkt/index.html    # 编辑mkt网页文件 
--mkt
--xjzhujunjie
--2012/03/17
[root@www www]# cat tec/index.html     # 编辑tec网页文件
--tec
--xjzhujunjie
--2012/03/17
[root@www ~]# ifconfig eth0:0 192.168.101.251     # 新建网卡eth0:0
[root@www ~]# ifconfig eth0:1 192.168.101.252     # 新建网卡eth0:0
[root@www ~]# vim /etc/httpd/conf/httpd.conf   # 编辑apache配置文件

[root@www ~]# service httpd restart          # 重启apache服务
Win7 客户端测试在C:\Windows\System32\drivers\etc\hosts添加以下内容:
192.168.101.250          www.junjie.com
192.168.101.251          tec.junjie.com
192.168.101.252          mkt.junjie.com
Win7 客户端测试结果如下:

案例4:基于ip端口的虚拟主机(请关闭firewall和 SELinux)
#1. 首先关闭eth0:0和eth0:1网卡;
#2. 新建网页文件(略)
[root@www ~]# vim /etc/httpd/conf/httpd.conf   # 编辑apache配置文件
134 Listen 80
 135 Listen 800
 136 Listen 8000

[root@www ~]# service httpd restart          # 重启apache服务
Win7 客户端测试在C:\Windows\System32\drivers\etc\hosts添加:
192.168.101.250          www.junjie.com
Win7 客户端测试结果如下:

案例5:基于主机头的虚拟主机
# 新建网页文件(略)
[root@www ~]# vim /etc/httpd/conf/httpd.conf   # 编辑apache配置文件
# 首先删除listen 800和listen 8000;
986 NameVirtualHost 192.168.101.250:80

[root@www ~]# service httpd restart          # 重启apache服务
Win7 客户端测试在C:\Windows\System32\drivers\etc\hosts添加:
192.168.101.250          www.junjie.com
192.168.101.250          tec.junjie.com
192.168.101.250          mkt.junjie.com
Win7 客户端测试结果如下:

案例6:基于ip端口的虚拟主机(开启SELinux)
SELinux 引起的Apache基于端口的虚拟主机启动失败解决方案
# 新建网页文件(略)   #使用端口800和8888
开启SELinux:

[root@www ~]# vim /etc/httpd/conf/httpd.conf   # 编辑apache配置文件

 

[root@www ~]# service httpd restart # 重启apache服务,无法启动如下示:

因为SELinux设置的是Enforcing(强制)模式,于是使用semanage port -l |grep http,查看如下图,发现如下问题,它支持的端口只有80,443,448,8008,8009.8443并没有800和8888端口

此时可以使用semanage port -a -t http_port_t -p tcp 800来添加SELinux对800和8888端口的支持
[root@junjie ~]# semanage port -a -t http_port_t -p tcp 800
[root@junjie ~]# semanage port -a -t http_port_t -p tcp 8888
接下来查看端口,如下所示(SELinux已经支持800和8888端口):

此时再重新启动apache,看到正常启动。如下所示:

Win7 客户端测试在C:\Windows\System32\drivers\etc\hosts添加:
192.168.101.250          www.junjie.com
Win7 客户端测试结果如下:(正常访问)

《完》




本文转自xjzhujunjie 51CTO博客,原文链接:http://blog.51cto.com/xjzhujunjie/808877

相关文章
|
9天前
|
Java Linux
Springboot 解决linux服务器下获取不到项目Resources下资源
Springboot 解决linux服务器下获取不到项目Resources下资源
|
10天前
|
前端开发 JavaScript 关系型数据库
从前端到后端:构建现代化Web应用的技术探索
在当今互联网时代,Web应用的开发已成为了各行各业不可或缺的一部分。从前端到后端,这篇文章将带你深入探索如何构建现代化的Web应用。我们将介绍多种技术,包括前端开发、后端开发以及各种编程语言(如Java、Python、C、PHP、Go)和数据库,帮助你了解如何利用这些技术构建出高效、安全和可扩展的Web应用。
|
13天前
|
Linux
linux下搭建tftp服务器教程
在Linux中搭建TFTP服务器,需安装`tftp-server`(如`tftpd-hpa`)。步骤包括:更新软件包列表,安装`tftpd-hpa`,启动并设置开机自启,配置服务器(编辑`/etc/default/tftpd-hpa`),添加选项,然后重启服务。完成后,可用`tftp`命令进行文件传输。例如,从IP`192.168.1.100`下载`file.txt`: ``` tftp 192.168.1.100 &lt;&lt;EOF binary put file.txt quit EOF ```
27 4
|
22天前
|
Linux
linux查看应用对应的端口
linux查看应用对应的端口
15 0
|
22天前
|
网络协议 安全 Linux
linux系统安全及应用——端口扫描
linux系统安全及应用——端口扫描
35 0
|
2天前
|
缓存 负载均衡 数据库
优化后端性能:提升Web应用响应速度的关键策略
在当今数字化时代,Web应用的性能对于用户体验至关重要。本文探讨了如何通过优化后端架构和技术手段,提升Web应用的响应速度。从数据库优化、缓存机制到异步处理等多个方面进行了深入分析,并提出了一系列实用的优化策略,以帮助开发者更好地应对日益增长的用户访问量和复杂的业务需求。
8 1
|
2天前
|
缓存 监控 数据库
Flask性能优化:打造高性能Web应用
【4月更文挑战第16天】本文介绍了提升Flask应用性能的七大策略:优化代码逻辑,减少数据库查询,使用WSGI服务器(如Gunicorn、uWSGI),启用缓存(如Flask-Caching),优化数据库操作,采用异步处理与并发(如Celery、Sanic),以及持续监控与调优。通过这些手段,开发者能有效优化Flask应用,适应大型或高并发场景,打造高性能的Web服务。
|
4天前
|
数据库 开发者 Python
Python中使用Flask构建简单Web应用的例子
【4月更文挑战第15天】Flask是一个轻量级的Python Web框架,它允许开发者快速搭建Web应用,同时保持代码的简洁和清晰。下面,我们将通过一个简单的例子来展示如何在Python中使用Flask创建一个基本的Web应用。
|
5天前
|
Linux 数据安全/隐私保护
Linux基础与服务器架构综合小实践
【4月更文挑战第9天】Linux基础与服务器架构综合小实践
1096 6
|
7天前
|
JavaScript 前端开发 API
Vue.js:构建高效且灵活的Web应用的利器
Vue.js:构建高效且灵活的Web应用的利器