如何打造类似数据虫巢官网系列教程之三:架设网站

题图

文·blogchong

本文接上一篇《如何打造类似数据虫巢官网系列教程之二:爬虫是怎么炼成的》,以及不清楚前情概要的可以先看这篇《如何打造类似数据虫巢官网系列教程之一:介绍已经准备工作》

在第一篇我们介绍了整个系列的缘由背景,在第二篇,我简单的介绍了数据源的获取问题。

理论上我应该对整站源码做一个比较全面的剖析,或者说明。

但是,由于上一篇我已经把整站的源码在Github上进行了开源,而得到的最多的问题就是:我如何把网站跑起来了?

看来果真,大伙儿还是更关注结果,而不是过程,所以我也就调整一下系列的内容,这篇重点就是如何让网站run起来。

这里先把Github上的项目源码给出:https://github.com/blogchong/mite8-com

在此之前,为了能让大伙儿快速把数据可视化网站部署起来,我把涉及到的展示数据的数据库表结构,甚至是表数据都导出来了,放在了开源代码根目录下的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,哈哈。


相关扩展阅读:

《如何打造类似数据虫巢官网系列教程之二:爬虫是怎么炼成的》

《如何打造类似数据虫巢官网系列教程之一:介绍已经准备工作》

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,233评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,013评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,030评论 0 241
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,827评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,221评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,542评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,814评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,513评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,225评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,497评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,998评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,342评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,986评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,055评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,812评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,560评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,461评论 2 266

推荐阅读更多精彩内容