Apache 虚拟主机 VirtualHost 配置

为什么80%的码农都做不了架构师?>>>   hot3.png

虚拟主机 (Virtual Host) 是在同一台机器搭建属于不同域名或者基于不同 IP 的多个网站服务的技术. 可以为运行在同一物理机器上的各个网站指配不同的 IP 和端口, 也可让多个网站拥有不同的域名.

Apache 是世界上使用最广的 Web 服务器, 从 1.1 版开始支持虚拟主机. 本文将讲解在不同服务器 (Redhat Enterprise Linux, Ubuntu Linux, Windows) 上使用 Apache 搭建虚拟主机来搭建多个网站.

主旨

本文旨在让读者知道如何在同一台机器上搭建多个网站, 并附带一些使用技巧. 以操作为主, 不会过多谈及原理.

目标

本文是写给拥有一定的服务器配置和管理技能, 工作中需要同时维护多个网站的网站主, 网站开发者和网络管理员. 如果你是互联网公司的配管工程师, 对计算机服务器原理和操作十分熟悉, 请忽视本文, 你不会在上面找到太多有价值的东西.

Redhat Enterprise Linux

Redhat Enterprise Linux (包括 CentOS Linux), 是使用最广的 Linux 服务器, 大量的网站应用都部署在其上.

1. 打开文件 /etc/httpd/conf/httpd.conf, 搜索 VirtualHost example, 找到代码如下:

#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for requests without a known
# server name.
#
#<VirtualHost *:80>
#    ServerAdmin webmaster@dummy-host.example.com
#    DocumentRoot /www/docs/dummy-host.example.com
#    ServerName dummy-host.example.com
#    ErrorLog logs/dummy-host.example.com-error_log
#    CustomLog logs/dummy-host.example.com-access_log common
#</VirtualHost>

2. 仿照例子, 添加一段代码来指定某一域名的网站.

#
# DocumentRoot 是网站文件存放的根目录
# ServerName 是网站域名, 需要跟 DNS 指向的域名一致
#
<VirtualHost *:80>ServerAdmin zhao.wuz@alibaba-inc.comDocumentRoot /var/www/httpdocs/demo_aliluna_comServerName demo.aliluna.comErrorLog logs/demo.aliluna.com-error.logCustomLog logs/demo.aliluna.com-access.log common
</VirtualHost>

3. 重启 httpd 服务, 执行以下语句.

service httpd restart

Ubuntu Linux

Ubuntu 在 Linux 各发行版中, 个人用户数量最多的. 很多人在本机和虚拟机中使用. 但 Ubuntu 和 Redhat 的 VirtualHost 设置方法不相同.

1. 打开目录 /etc/apache2/sites-available/, 发现 default 和 default-ssl 两个文件, 其中 default 是 http 虚拟主机服务的配置文件, default-ssl 是配置 https 服务使用的. 可以复制一份 default 文件. 并修改配置文件名, 文件名必须与域名一致 (如: demo.aliluna.com)

2. 打开新建的配置文件, 修改 DocumentRoot, ServerName 和对应的配置目录. 例子如下:

#
# DocumentRoot 是网站文件存放的根目录
# ServerName 是网站域名, 需要跟 DNS 指向的域名一致
#
<VirtualHost *:80>ServerAdmin zhao.wuz@alibaba-inc.comDocumentRoot /var/www/httpdocs/demo_aliluna_comServerName demo.aliluna.comErrorLog ${APACHE_LOG_DIR}/demo.aliluna.com-error.logCustomLog ${APACHE_LOG_DIR}/demo.aliluna.com-access.log combined
</VirtualHost>

3. 通过 a2ensite 激活虚拟主机配置

sudo a2ensite demo.aliluna.com

4. 打开目录 /etc/apache2/sites-enabled/, 你会发现所有激活的虚拟主机, 可以通过 a2dissite 进行注销

sudo a2dissite demo.aliluna.com

5. 重启 Apache 服务, 激活虚拟主机

sudo /etc/init.d/apache2 restart

Windows

Windows 是市场占有率最高的 PC 操作系统, 也是很多人的开发环境. 其 VirtualHost 配置方法与 Linux 上有些差异, 以下方式适合原生 Apache, XAMPP 和 WAMP 套件.

1. 打开目录 {Apache2 安装目录}\conf\extra\, 找到 httpd-vhosts.conf 文件.

2. 仿照例子, 添加一段代码来指定某一域名的网站.

#
# DocumentRoot 是网站文件存放的根目录
# ServerName 是网站域名, 需要跟 DNS 指向的域名一致
#
<VirtualHost *:80>ServerAdmin zhao.wuz@alibaba-inc.comDocumentRoot "D:/workspace/php/demo_aliluna_com"     ServerName demo.aliluna.comErrorLog "logs/demo.aliluna.com-error.log"     CustomLog "logs/demo.aliluna.com-access.log" common
</VirtualHost>

3. 打开 httpd.conf 文件, 添加如下语句.

# Virtual hosts
Include conf/extra/httpd-vhosts.conf

4. 重启 Apache 服务.

总结

最近我在不同的几台服务器上搭建了一些网站服务, 这篇文章也算是我的个人笔记, 望日后可自用, 也希望对读者有用. 文中介绍了几个主流开发和部署环境上配置虚拟主机的方法, 其他 OS 大同小异.

转载于:https://my.oschina.net/341200/blog/48894

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/302816.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

selenium java 参数化_Java+selenium 自动化测试【03】-- 数据驱动之参数化

目录1.前言2.读取txt文件实现参数化3.使用Excel表格参数化4.使用TestNG.xml文件参数化5.使用DataProvider传参前言在上一个随笔中&#xff0c;我们已经自动化测试模型&#xff0c;讲到数据驱动模型。数据驱动&#xff1a;是自动化的一个进步&#xff0c;从本意来讲&#xff0c;…

IT公司老板落水,各部门员工怎么救?

公司高层公司副总A&#xff1a;咱们开个会研究一下这个事情怎么处理。公司副总B&#xff1a;如果老板没有救成功&#xff0c;下任是谁呢&#xff1f;会不会影响公司的上市&#xff1f;公司副总C&#xff1a;我认为咱们开会应该讨论两个方案&#xff0c;一个是救人方案&#xff…

这样用Docker 搭建 Jenkins 实现自动部署,你知道吗?

一、为什么用jenkins主要是我们现在的项目都是采用手动部署的&#xff0c;每当给项目中新增一个功能就必须执行(打包--测试--上传测试修复的包到指定服务器--部署上线)&#xff0c;这个流程操作起来繁杂&#xff0c;不小心就可能导致部署失败&#xff1b;急需找到一个方式来解决…

struts.properties属性解释

Struts 2框架有两个核心配置文件:struts.xml和struts.properties 其中struts.xml文件主要负责管理应用中的Action映射&#xff0c;以及该Action包含的Result定义等。除此之外&#xff0c;Struts2框架还包含一个struts.properties文件&#xff0c;该文件定义了Struts 2框架的大量…

java if or android_RxJava switchIfEmpty操作符实现Android检查本地缓存逻辑判断

switchIfEmpty(Observable emptyObservable)操作符从字面意思上就很好理解&#xff0c;就是当为空的时候跳转到emptyObservable。那末如何理解当为空的时候. 下面将会使用实际案例解释这个switchIfEmpty的使用方法。业务需求假设我们的app里有加载文章列表功能&#xff0c;要求…

这是对R的误解!R的应用原来这么广!

R作为一种统计分析软件&#xff0c;广泛应用于生物、医学、电商、新闻等数据相关行业&#xff0c;是目前主流数据应用软件之一。为了更好地帮助大家了解并快速入门R语言&#xff0c;现超级数学建模携手柯老师以R语言为基础&#xff0c;向大家隆重推出《R语言基础》系列课。柯老…

WinDBg定位asp.net mvc项目异常崩溃源码位置

项目介绍&#xff1a;asp.net mvc angular iiswindows server系统莫名崩溃最近有个系统默认奇妙崩溃50x&#xff0c;服务整体变成无响应&#xff0c;当运维告知我只有重启应用程序池项目才能正常。我问他如何重现&#xff0c;得到的回复是我这里无法重现&#xff0c;但客户使用…

selenium webdirver之ruby-开发ide安装

这里用到的ide是netbeans ruby环境安装好后&#xff0c;下载netbeans&#xff0c;然后进行安装 netbeans ruby plugins download URL&#xff1a;http://jruby.org.s3.amazonaws.com/downloads/community-ruby/community-ruby_7_1_preview1.zip 解压 打开netbeans&#xff0c;工…

mysql如何和qt连接使用_Qt5学习:连接MySQL数据库

一、环境QT版本&#xff1a;QT 5.8.0(msvc2013_64)MySQL版本&#xff1a;mysql 5.7.19二、配置之前 mysql 数据库一直都连接不上&#xff0c;网上也搜了很多资料&#xff0c;主要还是库文件的问题。重新将 mysql.pro 编译一下&#xff0c;将生成的 .dll 和 .lib 文件拷贝到 QT …

TensorFlow框架的这些操作你肯定不知道!

谷歌在上周正式推出了深度学习框架TensorFlow 1.11.0 版本&#xff0c;那么TensorFlow框架到底是什么&#xff1f;TensorFlow™ 是一个采用数据流图&#xff08;data flow graphs&#xff09;&#xff0c;用于数值计算的开源软件库。最初由Google大脑小组的研究员和工程师们开发…

C#中HashTable、Dictionary、ConcurrentDictionary区别

一、HashTableHashTable表示键/值对的集合。在.NET Framework中&#xff0c;Hashtable是System.Collections命名空间提供的一个容器&#xff0c;用于处理和表现类似key-value的键值对&#xff0c;其中key通常可用来快速查找&#xff0c;同时key是区分大小写&#xff1b;value用…

CDA数据分析师备考必看,L1L2通用

CDA数据分析师L1,L2均可 可安排当月月底的线上考试 线上考的为双机位监考&#xff0c;但是不用担心 安全无隐患&#xff0c;需要联系 当月拿证

[SIR数据集实验][2]Java类数据集相应工具使用的小经验

这段时间安排一个师弟在继续学习SIR数据集的使用和实验方法&#xff0c;这里我先总结点经验。 如果要生成某一个数据集的Fault Matrix&#xff0c;&#xff08;虽然一般在info目录下有已经生成好的Fault Matrix&#xff0c;但按照Java Object Handbook里面的建议&#xff0c;最…

java 异步读写_Java异步与AIO

异步编程提供了一个非阻塞的&#xff0c;事件驱动的编程模型。 这种编程模型利用系统中多核执行任务来提供并行&#xff0c;因此提高了应用的吞吐率。Java异步编程通常需要使用Future&#xff0c;FutureTask和Callable&#xff0c;其中Future代表未来的某个结果&#xff0c;一般…

你以为妹子穿短裙真的是为了诱惑你吗?

全世界有3.14 % 的人已经关注了数据与算法之美每年暑假&#xff0c;ChinaJoy 都会火热进行&#xff0c;无数一年不出家门的宅男们扛着“长枪大炮”&#xff0c;向着短裙姑娘们就冲过去了。关于裙子&#xff0c;林语堂曾有过一句名言&#xff1a;“演讲应该像女士的裙子&#xf…

聊一聊Jmeter的参数化

背景 前面一篇聊了一下 JMeter 的简单使用&#xff0c;这篇聊一下 JMeter 的参数化。在开始之前先来一个单元测试的例子&#xff0c;感受一下参数化。上面是一个用 xUnit 写的单元测试&#xff0c;这个单元测试就是一个参数化的例子&#xff1a;模拟了不同的输入&#xff0c;调…

Android VNC Server New

Android VNC Server New 关于VNC请参见维基百科&#xff1a;http://zh.wikipedia.org/wiki/VNC关于执行Android VNC Server&#xff0c;请参见前一篇文章&#xff1a;点击链接 一、VNC下载1&#xff09;fastdroid-vncAndroid VNC Server开源项目 http://code.google.com/p/fast…

python bind sock_python SOCKET编程详细介绍

本章内容1、socket2、IO多路复用3、socketserverSocketsocket起源于Unix&#xff0c;而Unix/Linux基本哲学之一就是“一切皆文件”&#xff0c;对于文件用【打开】【读写】【关闭】模式来操作。socket就是该模式的一个实现&#xff0c;socket即是一种特殊的文件&#xff0c;一些…

EPPlus导出Excel感觉很不错~~~

前言导出成为很多系统的必备功能&#xff0c;之前分享过导出PDF的功能&#xff0c;这里来分享一下Excel的导出&#xff1b;提到Excel导出&#xff0c;NPOI肯定是很多小伙伴的首选&#xff0c;在以往的项目中也用其完成了很多导出需求&#xff1b;对于NPOI&#xff0c;个人感觉使…

[文摘]标准的软件开发过程

为什么80%的码农都做不了架构师&#xff1f;>>> 软件开发的标准过程包括六个阶段&#xff0c;而六个阶段需要编写的各类文件达 14 种之多&#xff0c;在每个阶段需要编写哪些文件&#xff0c;以及这些文件的主要内容见下&#xff1a; 1.可行性与计划研究阶段 可行性…