云主机环境搭建教程之搭建全能主机

  很多站长在购买虚拟主机的时候,会看虚拟主机的一些参数,其中最重要的就是支持的程序语言。现在很多IDC商家都在宣称全能主机。

   最好笑的一个事情就是,笔者刚建站的时候,购买了国内一家小主机商(名叫主机屋)的虚拟主机,他们宣传就是全能主机,什么语言都支持。这样的幌子去骗一些菜鸟还可以,对于一个懂技术的,就只能对他们的伎俩投以鄙视的眼光。后来询问之后,才知道他们所谓的全能主机,也就仅仅只支持PHP和ASP同时运行 (使用IIS运行PHP),连ASP.net都不支持,对于这事,笔者还和他们理论了半天,现在估计再也不敢宣称全能主机了,这样的商家,希望所有站长都能远离,太没有道德了。

  首先说说,什么是全能主机。

  所谓的全能主机,就是一台服务器上面同时支持多个不同的应用服务器运行,并且能通过外部独立域名访问的主机。这里的多个,要至少大于等于三个。

  因为目前来讲,Apache,IIS,Tomcat是目前被广泛使用的三种Web服务器软件,其中Apache,tomcat是开源软件,不仅用于Unix系统,也有基于Win32平台的版本。

   IIS是Windows操作系统自带的组件,也提供了强大的Internet和Intranet服务功能。这三种服务器软件各有特色,IIS对 ASP+Access的支持比较好,而Apache是PHP+MySQL平台不二的选择,Tomcat是运行java语言程序的服务器。

   大家都知道,http只有一个开放端口,就是80端口。外部通过独立域名访问网站的时候,如果不加端口,会默认访问服务器中80端口下面的网站。很现实,这几个应用服务器不可能只用一个端口。如果要访问,则必须通过域名加端口号才能访问,这样显然不利于推广。因此,我们就需要想办法让用户输入简单域 名,而我们在后台截获域名,然后动态的解析到不同的端口网站上。

  按照这样的思路,笔者想了很多办法,传统的就是重新配置IIS,使其支 持PHP+MySQL,或者重新配置Apache使其能支持ASP+Access。但考虑到这两种方法虽然从技术上都能够实现,但配置过程较复杂,不易于推广,不利于初学者使用。况且如果你还搭建了java程序,那就更复杂了。

  笔者也没有从事过IDC行业的工作,没有这方面的经验。同时也在思考现在那些全能功能是如何实现的。根据笔者的经验,他们是有一个80端口的服务器做代理分发,将不同的域名分发到不用的应用服务器的网站上。

  通过这样的思路,笔者想到了使用Apache的虚拟主机功能和反向代理模块来实现。

  什么是Apache虚拟主机。在apache的官方技术网站上是这样定义的。

   虚拟主机指的是在单一机器上运行多个网站(例如 www.company1.com 和www.company2.com) 。 虚拟主机可以“基于IP”,即每个 IP 一个站点; 或者“基于名称”, 即每个 IP 多个站点。这些站点运行在同一物理服务器上的事实不会明显的透漏给最终用户。

  Apache 是第一个支持基于 IP 的虚拟主机的服务器。 Apache 版本 1.1 和更新的版本同时支持基于 IP 和基于名称的虚拟主机。 基于名称的虚拟主机有时候称为基于主机或非 IP的虚拟主机。

  详细地址:http://httpd.apache.org/docs/2.2/vhosts/注:本文是基于名称的虚拟主机配置。

  什么是反向代理。

  反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个web服务器。

  那么我们就将Apache服务器做为一个代理web服务器,用它来处理从外部访问过来的任何请求并且返回给外部。

  有兴趣的朋友可以了解下什么是正向代理。

  名词术语大概介绍完了,那么本文主要通过一个例子来为大家简述配置的具体方法。

  前言:仍然以笔者的www.bxw001.com这个域名为例。这个网站是一个ASP+Access网站,建立在IIS6.0下,端口设置为81。如果不使用反向代理,则用户访问这个网站时,必须使用www.bxw001.com:81才能正常访问,很麻烦。

  通过反向代理设置后,用户仍然使用www.bxw001.com域名网站,但首先会进入到Apache服务器,然后再调转到IIS下的正式网站去。

  设置步骤如下:

  1、加载Apache的代理模块

  打开httpd.conf文件,放开以下几行代码的注释,(将前面的#去掉即可),此时Apache就是一个web代理服务器了。

LoadModuleproxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so

  2、建立虚拟主机,进行端口重定向

  为需要代理的网站建立一个虚拟主机,在此笔者强烈建议,都通过虚拟主机来单独配置。有些朋友可能直接在httpd.conf文件里修改,这样虽然也能实现,但是所有的访问,包括不是代理域名的访问都会进入被代理的网站去。

  因为Apache虚拟主机的加载顺序是按照顺序来加载的,如果访问的url配置了虚拟主机,则进行代理访问,如果没有,默认是以第一个的。

  因此,需要引入虚拟主机单独的配置文件,在这里面增加虚拟主机配置。

  在httpd.conf文件中找到这行代码,Include conf/extra/httpd-vhosts.conf,去掉#注释。

  以下关于虚拟主机的配置都在httpd-vhosts.conf下进行。

  默认Apache提供了两个样例,不用管,直接注释掉,或者在原来上面修改也可以。

  我们是要将站点www.bxw001.com域名的所有访问转向IIS下面的81端口,先增加一个虚拟主机。代码如下:

<VirtualHost*:80>
    ServerAdmin webmaster@a.com
    DocumentRoot "d:/wwwroot/www.bxw.com"
    ServerName bxw001.com
    ServerAlias www.bxw001.com
    ErrorLog "logs/bxw001.com.log"
    CustomLog "logs/bxw001.com.log" common
    <Directory "d:/wwwroot/www.bxw.com">
     Require all granted
    </Directory>
   ProxyPass / http://localhost:81/
   ProxyPassReverse / http://localhost:81/
</VirtualHost>

  解释:

ServerAdmin:这个就是邮箱,可以默认
DocumentRoot:这个是你被代理的网站的根目录地址。我们这就是IIS6.0下面的ASP网站目录。注意目录斜杠的方向。
ServerName :被代理的域名,这里就是你IIS下ASP网站的独立域名。
ServerAlias:同上,别名,一般可以写成一级或者二级域名。
ErrorLog :日志文件地址和名称。一般以域名作为文件名,方便区分,默认存放在apache的logs目录下。
<Directory > 设置虚拟主机的目录的访问权限。笔者建议权限的设定都在虚拟主机下单独设置,而不是在httpd.conf中统一设置成所有都可以访问,这样不安全。
ProxyPass :这个是关键,表示IIS下面ASP网站的真实访问地址,这里写成localhost,也可以写成域名+端口,这要看你在IIS设置的主机头地址了。如果主机头默认,那么这里就是localhost。
ProxyPassReverse :反向代理地址,返回给用户的信息。

  同时不要忘记在所有虚拟主机的一开始位置,增加默认虚拟主机配置。

<VirtualHost*:80>
     ServerAdmin prograsliu@gmail.com
     DocumentRoot "D:/wamp/www"
     ServerName localhost
     ServerAlias localhost
     <Directory "d:/wamp/www">
         Options FollowSymLinks
         AllowOverride All
         Order allow,deny
         Allow from all
     </Directory>
</VirtualHost>

  这个默认,你可以设置成Apache的www目录。

  以上两步操作完成后,保存后重启Apache服务。你可以试着访问ASP网站的域名www.bxw001.com,不要加端口号,看看是否可以正常访问了。呵呵。

  如果要增加多个IIS网站或者JAVA网站,只要按照上面的步骤2中的代码增加虚拟主机即可,同时将代理域名写成你需要被代理的网站的URL即可。

  通过这样操作,就可以完美实现一个全能主机了,你可以随便在服务器上搭建多个不同环境的网站了。

云主机环境搭建教程之搭建全能主机相关推荐

  1. 云主机环境搭建教程之搭建全能主机--主机使用碎碎念

    很多站长在购买虚拟主机的时候,会看虚拟主机的一些参数,其中最重要的就是支持的程序语言.现在很多IDC商家都在宣称全能主机. 最好笑的一个事情就是,笔者刚建站的时候,购买了国内一家小主机商(名叫主机屋) ...

  2. 如何搭建php虚拟主机环境,在本地如何搭建虚拟主机环境?

    现在很多中小型企业在建站的时候,也都会选择虚拟主机建站.因为虚拟主机价格便宜,有其独到的优点和优势,所以现在还是很受企业用户和站长使用的.但是对于一些新手站长来说,在使用虚拟主机的时候在本地如何搭建虚 ...

  3. 网站搭建教程:搭建本地web服务器 4/23

    系列文章 网站搭建教程:内网穿透测试将本地静态网站发布公网可访问 1/23 网站搭建教程:安装源代码编辑软件 2/23 网站搭建教程:建立开放源代码的简单网页 3/23 网站搭建教程:搭建本地web服 ...

  4. 流放者柯南自建服务器 linux,流放者柯南个人服务器搭建教程 怎么搭建个人服务器...

    ­ 相信很多玩家都不知道在流放者柯南中怎么搭建个人服务器,今天游戏堡小编为大家带来了流放者柯南个人服务器搭建教程,下面一起来看看吧! ­ 搭建个人服务器教程(Windows) ­ 1. 下载STEAM ...

  5. 的主机名_Mac教程——修改mac 下主机名、电脑名、局域网主机名

    您电脑的名称和本地主机名用于在本地网络上识别您的电脑. 更改电脑的名称 您电脑的名称显示在"共享"偏好设置面板的顶部. 在 Mac 上,选取苹果菜单 >"系统偏好设 ...

  6. centos php服务器搭建教程,CentOS搭建PHP服务器环境简明教程

    本文实例讲述了CentOS搭建PHP服务器环境的方法.分享给大家供大家参考,具体如下: 1. 先安装apache: yum install httpd 配置ServerName vi /etc/htt ...

  7. 开源成语答题小程序搭建教程 小白搭建教程

    云开发的成语答题小程序,无需搭建服务器,无需域名即可使用云端能力.目前该主要用于个人流量主答题,目前小程序集成微信banner广告,视频广告,插屏广告,激励视频广告等功能,方便运营者赚取广告收益. 搭 ...

  8. 计算机集群搭建教程,Windows搭建Redis集群-详细教程

    一.集群知识 1.集群的概念 所谓的集群,就是通过添加服务器的数量,提供相同的服务,从而让服务器达到一个稳定.高效的状态. 2.使用redis集群的必要性 问题:我们已经部署好了redis,并且能启动 ...

  9. 生物信息学分析服务器搭建教程,Snakemake搭建生信分析流程-步骤

    什么是snakemake 官网地址:https://snakemake.readthedocs.io/en/stable/ 使用snakemake的好处 process data with the s ...

最新文章

  1. 一篇文章解决机器学习,深度学习入门疑惑
  2. C语言高级编程:数组指针与数组
  3. 木兰编程语言python_ulang(木兰编程语言)
  4. 持久代是方法区还是堆中的?
  5. 【官方搭建入门】JEECG 平台开发环境搭建必读
  6. ARM Cotex-M4数据手册4---System Control
  7. php socket_create卡顿,phpsocket_createundefined的异常解决方法
  8. 论文|SDNE的算法原理、代码实现和在阿里凑单场景中的应用说明(附代码)
  9. Java开发全套学习!java判断字符串中是否包含中文
  10. 360服务器已停止响应,对于 SQL Server 2017年累积更新 5
  11. vue、react隐式实例化
  12. ubuntn 常用命令和快捷键汇总
  13. iOS 项目默认竖屏 个别页面横屏
  14. 初识edb debugger
  15. 【BUG】win10下VS中出现LINK : fatal error LNK1104: cannot open file “xx/xx.exe“的问题
  16. 12035徐波:PMBOK融会贯通:会议一览
  17. 【转载】目前市场上主流的BI产品主要有哪些?
  18. IOS程序员(新人入职一周)
  19. OPencv无损保存图片
  20. python中字母与ascii码的相互转换

热门文章

  1. 常熟理工php实验三_西普学院(实验吧)Web题解
  2. layui后端框架的简单使用
  3. nginx 简介与安装
  4. 13.2 打印图形和文字
  5. Aurix TC3xx系列MCU GTM模块介绍
  6. 毕业季之找工作——面试小总结+自我激励
  7. Y OU MOSTLY WALK ALONE翻译
  8. cahrt框架 ios_iOS使用Charts框架绘制—折线图
  9. android 清空回退栈,清空Fragment回退栈中某个Fragment
  10. java程序设计期末考试试题_JAVA语言程序设计期末考试试题及答案