工作不到一年,以前又异常懒惰,对服务器方面一向没有什么认知,听名字以为很高级,刚开始有些不知所措,从网上搜索了一些知识,总算有了一定的了解,但也只能算刚刚入门,记录一下。

VPS

VPS(Virtual Private Server 虚拟专用服务器)技术,将一部服务器分割成多个虚拟专享服务器的优质服务。每个VPS都可分配独立公网IP地址、独立操作系统、实现不同VPS间磁盘空间、内存、CPU资源、进程和系统配置的隔离,为用户和应用程序模拟出“独占”使用计算资源的体验。VPS可以像独立服务器一样,重装操作系统,安装程序,单独重启服务器。

简单来说就是出于成本考虑,租用服务器花费太高,服务商将服务器分割成若干个“服务器”,这些个“服务器”有可以享有独立的ip,os等资源,比较适合中小企业建站需求。

VPS上部署Java项目

以前认知上一直有个误区,以为服务器都很复杂,而现在大多数服务器的环境全是php的,我要部署Java应用,感觉无从下手,其实服务器和我们平常用的计算机没有什么区别,只是要24小时运行,联网,为外界提供访问。所以下面就好理解了。
我用的vps装的是Windows server 2008 R2,以前运行过asp项目,所以安装有IIS,因为IIS已经占用了80端口,所以再要tomcat运行javaweb程序的话,搜到了以下几种解决方法:

  1. 我的情况,不需要asp程序了,将IIS卸载释放80端口。
  2. 同时运行asp和jsp程序,需要将IIS和tomcat进行整合,网上有很多教程,我很懒,没弄!
  3. 好像也可以用nginx反向代理,没深入研究,这几天打算学一下nginx呢。

我就介绍下第一种情况把(懒癌患者)!
安装 jdk1.7tomcat7 配置好环境变量,这些基础的就不说了,就和在自己电脑上一样安装。

  • 将要运行的项目用eclipse打成war包,上传到vps上,放到 tomcat\webapps下或者其他目录也行,为了方便我就放到webapps下了。
  • 修改 tomcat\conf 下的 server.xml 文件修改端口为80,这样输入网址的时候就不用加上端口了。
#将端口修改成80 URIEncoding="UTF-8"是防止乱码的
<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />
  • 绑定域名,还是修改 tomcat\conf 下的 server.xml 文件。
<Engine name="Catalina" defaultHost="www.abc.com">
	<Realm className="org.apache.catalina.realm.LockOutRealm">
	</Realm>
	<Host name="www.abc.com" appBase="webapps" unpackWARs="true" autoDeploy="true">
		<Context path="" docBase="abc" debug="0" reloadable="true" />
		<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t &quot;%r&quot; %s %b" />
	</Host>
	<Host name="www.bcd.com" appBase="webapps" unpackWARs="true" autoDeploy="true">
		<Context path="" docBase="bcd" debug="0" reloadable="true" />
		<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t &quot;%r&quot; %s %b" />
		<Alias>bcd.com</Alias>
	</Host>
</Engine>

配置说明:

  • defaultHost="www.abc.com" 表示访问该tomcat默认进入的主机。也可以是localhost 不改,这样别人访问你的ip的话会进入tomcat设置界面。
  • Host 的 name:表示该主机绑定的域名,也可以是公网ip,如果绑定localhost则可以通过在浏览器中输入localhost访问该Host。Host的 appBase:表示该主机绑定的文件存放路径,可以使用相对路径或绝对路径如:d:/abc,tomcat会默认部署该目录里的应用。
  • <Context path="" docBase="abc" debug="0" reloadable="true" /> 如果不加这句,就会默认访问appBase下的ROOT文件夹下的项目。path是说明虚拟目录的名字,如果你要只输入ip地址就显示主页,则该键值留为空;docBase是虚拟目录的路径,它默认的是$tomcat/webapps/ROOT目录,我的项目在webapps\abc目录,让该目录作为我的默认目录。debug和reloadable一般都分别设置成0和true。
  • 绑定多个域名的话就在加一个host标签。
  • 多个域名同时访问一个项目,比如www.bcd.com和bcd.com都访问到bcd项目,host里加入标签,A大写。

现在重启tomcat浏览器输入地址就可以访问到要部署的项目了。
为了方便可以把tomcat加入windows服务,直接打开 tomcat\bin\service.bat 就会自动加入服务了。

问题

  1. 域名解析到服务器的ip了,tomcat也配置好了,还是访问不了。
    首先,域名解析到国内的vps都得备案,还有可能vps提供商的后台需要把域名加入白名单才能访问。
  2. 我还没发现其他的问题。