项目需要链接一批静态html做的小游戏,所以需要把一堆静态的html部署到服务器,就是一个文件夹,里面是游戏html页面文件夹,还有css,img等文件夹,一个统一入口,就命名为game.html吧。本来打算直接放tomcat里面。可以是在server.xml配个目录直接访问啦,或者是Eclipse建个web工程然后把工程打包出来放到webapps目录下,嗯,都简单,可是问题来了。放上去,都是乱码。工程和html页面也都是UTF-8了,html的meta标签也对charset设好了UTF8,但是乱码依旧。搜索了一下,在启动文件,Catalina.sh里面,对JAVA_OPT设置了encoding,JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF8",依然没用。
难道要把所有html都改成jsp,然后用<page>标签的pageEncoding="UTF-8"来解决。也肯定不行,小游戏是第三方提供的,人家整个新版本,要如何替换,还要慢慢比对。搜来搜去,也没有好方法,tomcat中也有其他应用,改配置怕影响不说,老重启简直天怒人怨。看到网上说Apache分发静态html页面的效率比tomcat要高。好吧。果断尝试用Apache。
服务器上已经有现成的Apache,只需增加配置。首先进去配置目录(通常配置在文件httpd.conf,也会在这个文件中直接指向读取某个文件夹里面的配置文件作为配置)。
/etc/httpd/conf.d
增加游戏工程的配置文件youxi.conf,内容如下
Listen 80 <VirtualHost *:80> DocumentRoot /usr/local/www/game/ ServerName www.xiaoyouxi.com </VirtualHost> <Directory /usr/local/www/game/> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny Allow from all </Directory> # # DirectoryIndex: sets the file that Apache will serve if a directory # is requested. # <IfModule dir_module> DirectoryIndex game.html </IfModule>
需要注意的是,工程所在端口,要Listen,可以先netstat -anp | grep 80看看端口是否被占用。然后virtualHost和Directory配置好,主要都是端口,以及工程目录。这里工程目录是/usr/local/www下,直接将游戏的整个包放进去。
最后的IfModule配置的,这个事工程的默认访问文件。通过上面的目录配置,访问服务器的80端口,就自动进入了目录game,于是在game目录下,放置一个统一入口文件game.html,通过IfModule配置,进入目录game默认访问game.html。
于是浏览器输入 服务器域名 www.xiaoyouxi.com,就会自动到game.html。完成,而且还没有乱码喔。