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

很多站长在购买虚拟主机的时候,会看虚拟主机的一些参数,其中最重要的就是支持的程序语言。现在很多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语言程序的服务器。

对于各自的环境搭建,可以参考《云主机环境搭建教程之IIS配置篇》,《云主机环境搭建教程之PHP配置篇》,以及《云主机环境搭建教程之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的虚拟主机。

注:本文是基于名称的虚拟主机配置。

什么是反向代理。

反向代理(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代理服务器了。

LoadModule proxy_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://www.bxw001.com:81/
ProxyPassReverse / http://www.bxw001.com: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即可。

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

作者:拼一把

云主机环境搭建教程之Java配置篇

搭建java环境是比较麻烦的,涉及一些技术方便的配置,但是,只要您按照文章的内容一步步配置完成,一般很少出现问题。

1、下载JDK,Tomcat

首先,你需要下载合适的JDK版本,这个不一定要是最新的,主要是要和自己网站程序所使用的JDK版本一直。比如你的程序是使用JDK5编译的,那你配置成JDK6的版本,则程序是运行不起来的。

目前,使用最多的仍然是JDK5和JDK6。

笔者使用的是解压版的JDK5和JDK6,解压到盘符的根目录下,如图:

 

JDK

目前比较稳定的是Tomcat6,建议使用解压版的。

2、环境变量配置

配置JDK环境变量:

环境变量配置
环境变量配置

配置完成之后,在cmd命令框中输入java –version 查看jdk的版本。如果出现命令不正确,说明环境变量配置不正确,请仔细检查。

Tomcat的环境变量默认不需要配置,直接进入tomcat的安装目录bin下面,运行startup.bat,即可启动tomcat,输入http://localhost:8080,进入tomcat管理页面。8080是tomcat默认的端口,可以在conf/server.xml中配置修改。以后的很多配置都在这个文件里进行。

将tomcat服务安装到系统服务中去。网站正常运行后,使用命令框启动,会增加服务器的资源,所以需要将tomcat启动服务增加到系统服务中去,这样就可以想启动其他服务一样,启动tomcat服务了。正确做法如下:

找到tomcat安装目录bin文件夹下的server.bat文件,使用文本工具打开,在最后一行增加如下代码。

REM 添加下面的一行
set   CATALINA_HOME=%cd%
set   SERVICE_NAME=Tomcat6  REM 服务名称,这个以后通过net stop Tomcat6/net start Tomcat6来快速启动服务
set   PR_DISPLAYNAME=ApacheTomcat6.0 REM 服务管理中要显示的名称
set   PR_DESCRIPTION=Apache   Tomcat   Server   -   http://jakarta.apache.org/tomcat REM 描述,默认即可。

修改好文件后,运行cmd打开控制台,进入Tomcat目录/bin文件夹,输入如下命令运行。
service.bat   install
程序提示:The   service   ‘Tomcat5(或者你修改一后的SERVICE_NAME)’   has   been   installed
说明服务Tomcat已经被安装成功。
顺便说一下,运行service.bat   remove可以移除服务。
安装完成后如图:

安装服务

同时修改服务的启动类型为自动,默认是手动。

这样Java的运行基础环境就搭建好了,你可以将java程序放在tomcat的webroot下面,启动tomcat服务,进行访问了。

关于其他一些配置以及域名的绑定,服务调优,会在后续文章中慢慢讲到,请持续关注。

如果,你遇到其他问题,也可以直接通过留言或者QQ等其他方式联系笔者,我会尽力帮助你解决。

至此,关于云主机下搭建IIS,PHP和Java环境的基础配置就告一段落。最后笔者将搭建一个裸机环境用到的一些常用软件和工具截图给大家分享,如果您有找不到的,可以联系笔者索取。

 

作者:拼一把

云主机环境搭建教程之FTP配置篇

对于网站的管理,离不开FTP。目前有很多FTP服务器端工具,他们的优点是有自己的用户管理,但是配置会比较麻烦。IIS自带的FTP轻量,易配置,它的用户和操作系统的用户是共用的,所以在开通FTP之前,需要新建一个FTP管理的用户,一般隶属于USER组。具体配置方法如图:

1、开启系统FTP组件服务,这个和安装IIS方法一样。具体见《云主机环境搭建教程之IIS配置篇》一文。

2、新建FTP。新建好USER组的系统用户后,具体操作如下:

 

新建FTP
新建FTP
新建FTP
新建FTP
新建FTP
FTP配置

此时,你就可以在浏览器里输入ftp://服务器IP地址 访问你的FTP目录文件了。但是,这样做比较危险,任何人都可以访问,因此需要设置权限,限制匿名访问。

3、配置FTP,这里的配置主要是配置FTP目录访问的权限限制。

邮件选中新建的FTP名称,选择属性,进入属性配置页面,切换到”安全账户”标签页。按照图例选择你新建的FTP用户。最后记住一定要将“允许匿名链接”这个复选框去掉,然后点击确定即可。

此时你在浏览器中数据刚才的FTP访问地址,就会提示你输入用户名和密码,数据刚才的设置的用户信息即可访问了。

最后,需要下载一个FTP客户端软件,平时用来上传和下载你服务器上FTP目录下的文件了。这种软件比较多,笔者推荐使用FileZilla,它也有服务器端的软件,具体使用不再叙述了,比较简单。

作者:拼一把