文·blogchong
本文接上一篇,以及不清楚前情概要的可以先看这篇。
在第一篇我们介绍了整个系列的缘由背景,在第二篇,我简单的介绍了数据源的获取问题。
理论上我应该对整站源码做一个比较全面的剖析,或者说明。
但是,由于上一篇我已经把整站的源码在Github上进行了开源,而得到的最多的问题就是:我如何把网站跑起来了?
看来果真,大伙儿还是更关注结果,而不是过程,所以我也就调整一下系列的内容,这篇重点就是如何让网站run起来。
这里先把Github上的项目源码给出:
在此之前,为了能让大伙儿快速把数据可视化网站部署起来,我把涉及到的展示数据的数据库表结构,甚至是表数据都导出来了,放在了开源代码根目录下的SQL_DATA子目录下,不用谢。
一、搭建网站的基本要素
首先是域名,域名是访问站点的入口。
关于域名的购买,可以从域名商处购买,国内典型的域名商推荐阿里的万网,或者新网,都算是这块比较权威的存在。
域名的选择需要注意的几个点就是:
1 简短好记,这个是必然的,不过大多有价值的域名都被抢注啦,所以凑合选吧。
2 符合自己网站的定位,例如做数据可视化相关的,可以以data做后缀之类的。
3 com后缀是国际通用版,cn是国内专用,net是网络域名后缀,这三个是比较常用的,至于其他一级域名后缀,别问我俺也不知道,自己玩的话随意啦。
一般的com域名,每年的价格在50大洋左右,每年需要续费,对于你们来说肯定是九牛一毛滴。
其次是服务器。
其实一般的网站空间都有什么PHP、ASP类型的,但是由于我们这里是自己写的JAVA程序,所以这里推荐的就是云服务器。
我们不止需要在服务器上跑Java的网站程序,还得安装部署MySQL,用来做网站数据的存储。
所以,理论上来说,如果你的网站访问量不大的话,其实要个最简配的阿里云足够啦。
比如,数据虫巢网站的服务器配置就很低,1核,2GB内存,500GB的硬盘,带宽用多少算多少,一个月下来100多大洋,比域名贵多了。
二、基本环境要求
购买服务器以及域名之后,需要会做域名解析,即将你的域名指向到你的服务器IP上,这个比较简单,在域名相关设置中可以做DNS解析。
其次,由于域名访问开放的80端口,所以,你需要在云服务器上,将这个端口打开,其实就是配置安全策略组,允许开放相关端口,这里即80。
云机的操作系统是CentOS6.5,所以需要你了解掌握一定的linux操作能力,此外就是对于操作系统的选择或者部分软件版本的选择,建议不要使用最新版本。
因为很多新版本出现问题之后,在线上相对来说比较难找到答案,鉴于稳定性的考虑,一般我们在做系统软件的板板选择时,尽量避免使用最新版本,一般最新版本往下回溯几个小版本即可。
由于我们的数据是存储在MySQL中,所以我们需要在服务器中搭建一个MySQL。
对于MySQL的版本要求并不是很多,只要在5.6以上即可,这是为何呢?
因为5.6版本是一个分水岭,并且具有相当大的改动,算是跨功能的大版本,很多新的相关系统框架已经不支持5.6更低的版本啦。
此外,我们的mite-com项目源码,是使用JDK7编译的,而Java8改动比较大,从目前的角度上说,同上,不建议轻易使用。
所以,我们需要一个JDK7的Java环境,这个不多说,MySQL的安装以及JDK的安装请自行百度之,估计连谷歌都用不上。
三、如何让他跑起来
首先需要修改application.properties配置文件中数据库连接配置。
spring.datasource.url=jdbc:mysql://localhost:3306/mite_service?useUnicode=true&characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=XXXX
看配置的Key意思应该都能理解了,第一个就是配置数据库的Host,端口以及数据库名,这里由于是同一个主机,可以配置回环地址,也可以配置内网IP。
别忘了这里配置的数据库名称,需要你在MySQL中对应创建好,然后导入源码中的SQL_DATA所有表以及表数据。
第二行、第三行配置的数据库账号密码,略过不多说。
#JSP相关设置
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
这个配置项表明这个一个以jsp为前端支撑的spring boot项目,这意味着我们的前端代码是嵌入在jsp文件中的。
这是多么古老的东西呀,虽然老,但是足够用啦。
至于这个配置文件中的其他配置,感兴趣的可以研究研究,这里就不一一介绍了。
在起来之前,需要对部分静态资源文件进行配置,因为有部分静态资源我使用的是外部引入的方法,没有打入包中,所以这部分静态资源需要额外上传到指定目录下。
其实目的很简单,方便在不重新打包的情况下修改这部分静态资源,也可以使jar包更小点。
这部分静态资源我已经上传到根目录下的myres文件夹下拉。
具体在服务器中,需要上传到哪个位置,看com.mite8.config路径下的MyWebAppConfigurer配置类。
registry.addResourceHandler("/myres/**").addResourceLocations("file:/data/application/mite/myres/");
你可以放在file:/data/application/mite/myres/这里,也可以重新修改定义。
把源码myres的type子文件夹,上传到服务器如上路径下,jar包就可以动态的进行外部加载啦。
在打包上传到服务器之前,先在本地跑一下,看看是否能够跑起来。
在com.mite8路径下,有个Application类,有个main方法。
是的,这就是整个项目的启动类,玩过java的人是不是感觉很熟悉,这TM的就是一个普通Java进程啊。
没错,我之所以推荐使用spring boot就是因为他足够轻量级,没有传统MVC框架那般繁琐,需要各种复杂的适配,也不用tomcat之类的鬼东西。
一个主函数直接起来,整个网站就跑起来了。
如果你的程序在本地都能正常跑起来,那么意味着整个代码就没什么很大问题了,打包上传到服务器跟普通的java程序跑起来就可以了。
如果你安装了Git Bash,直接使用命令mvn package进行打包就OK了。
如果没有,如果你使用的是IDEA,直接在file下的project structrue项中新增一个Artfacts项,把依赖包都包含进去,然后编译打个jar包出来也行。
最后,把jar包上传到你的服务器,直接按正常的java进程那般起来就OK啦。
例如我的jar包位置是在/data/application/mite下,我就通过下面命令进行执行:
nohup java -jar -Xmx824m -Xms824m /data/application/mite/mite-bigdata-jsp-1.0-SNAPSHOT.jar 2>&1 &
简单解释一下,nohup模式可以让你的进程在终端关闭的情况下依然坚挺的执行下去。
至于Java的Xmx以及Xms分别是JVM的最大可用内存,以及初始化内存,一般设置为一样的,避免每次垃圾回收后JVM重新分配内存,具体的JVM调优以及设置,自行百度谷歌。
再后面的2>&1命令,挺有意思的,我特喜欢用这个考面试者对于linux底层的熟悉情况,其实就是把stand error
指向到stand out,即错误输出到正常输出的地址中,这样我们就能在日志中捕获到程序的异常啦。
最后的&符号,后台执行,这个不多说。
基本上按照上面的流程,此时,通过访问你的域名,就能看到跟数据虫巢官网一模一样的东西啦(当然是一样的了,你啥都没改,连数据都使用俺的,能不一样么)。
到这里,估计你(数据虫巢)的网站又再次上线了,如果你这样就满足了,好吧,你可以打住了。
我们的故事还没有完结,在下一篇里,我会告诉整个代码逻辑怎么去架构的,写了四五年底层代码没有一点前端基础的虫巢君俺是如何把一个如此“高端大气”的前端界面给写出来的(难道你就不好奇),数据图表是怎么样实现变来变去的,顶端好玩的特效是如何做出来的。
是的,俺虫巢君不止是个爬虫工程师,还是数据分析师,还是linux运维工程师,还是后端开发工程师,还是懂数据可视化的前端工程师,还是UI设计师(如果PS网站图片以及做LOGO算的话),简直无敌了是吧~~
整个mite-com源码,除了那几个css以及js文件,所有代码都是俺虫巢君一个人撸出来的,包括各种png资源文件,都是我用PS一个个P出来的。
看到这里,别忘了去我的Github上点个star,哈哈。
下一篇,我将带你撸代码,以及给你讲讲后端工程师如何在几天能写网站前端的故事,大名都定好了《如何打造类似数据虫巢官网系列教程之四:数据工程师华丽转身前端的故事》。
扩展阅读:
本系列其他文章
关于大数据
广而告之:
要不要一起探讨大数据的相关的话题,是不是想要跨界大数据,进一步了解、讨论mite-com的开源代码,欢迎加入“数据虫巢读者私密群”,目前虫巢的读者私密群已经七八十人了哟 =>> 。
网友评论
最新评论
:mysql://localhost:3306/mite_service?useUnicode=true&characterEncoding=utf-8spring.datasource.username=root