Spring Boot + Java爬虫 + 部署到Linux(九、部署到Linux)
得益于Java的跨平台特性,以及spring boot的简化风格,部署到Linux是相当简单的。当然,首先要有一台Linux机器。
第一步,得到项目jar包。
在项目的目录下边(就是和pom.xml同级的位置),打开命令行,输入 mvn install 。然后一直运行啊运行,最后显示一个“BUILD SUCCESS”,就代表成功了。然后进入到target目录下边,可以看到一个jar文件,这个就是了。这个名字就是你的pom.xml里写的。可以尝试运行一下,在命令行里输入 java -jar jar包名字 ,然后打开nginx,访问一下试试。
把jar包放到linux机器上,一个喜欢的位置即可。
第二步,基础配置jdk、mysql
可以从官网上下载下来linux对应版本的jdk(1.8及以上),然后解压下来。然后配置一下环境变量,网上教程很多,而且非常简单。
安装一个mysql,最新好像是5.7吧。设置好root密码,最好和windows的一样,防止要来回改。新建一个数据库,然后新建那些表。注意这些表和库的名字都保持和原来的一样就好。需要注意的是:linux下面的mysql是区分大小写的。防止出现库、表找不到的情况。如果数据库出现不能插入数据(比如中文之类的),很可能是编码配置问题。一般来说在建表时将表设置为utf-8,访问时也是utf-8就可以了。如果不行,就各种百度吧,我当时整好久,把各种各样编码调成utf-8都没用。最后把表删了,重新建,然后指定默认为utf-8就好了。。。
第三步,配置nginx和静态文件
直接下载一个nginx,我用的centos,直接执行yum install nginx就可以了。ubuntu好像是apt-get。然后直接使用nginx命令,就可以开启服务了。配置文件一般在/etc/nginx/nginx.conf,也可以直接通过浏览器访问,会有nginx的提示页面。
和windows下面一样,配置一下反向代理、静态资源和websocket需要的一些配置就行了。添加的配置是完全相同的(除静态资源)。
同样的nginx -s reload 可以重新加载。如果nginx开启不了,可能是防火墙的问题,可以百度解决。我好像没遇到这个问题。
静态文件,一般是static里的文件,单独放一个地方。然后将nginx的静态资源配置的root 设置为这个地方。
第四步,(如果不需要代理则不用)配置ss客户端
ss是用python写的,所以我们先安装pip,yum install python-pip。然后pip install shadowsocks。安装完事之后,我们需要配置一下,在/etc/shadowsocks/config.json这里或者直接随便新建一个json文件,配置上一些代理服务器的信息啊,密码啊,加密方式啊,监听端口啊等等。然后可以使用sslocal(ss-local) -c 你的config.json就能运行了,但是这样会占用终端,一旦关闭终端,这个也没了。可以使用 nohup sslocal -c config.json (>ss.log) & ,其中()里的要不要都行,这样就能运行在后端了。具体方法,可以参考archSS。
当我们配完之后,发现好像还是不能fq,这是因为ss是sock5代理,而我们是http访问。所以还需要一个转化。
第五步,(如果不需要代理则不用)配置privoxy
privoxy可以将http转到sock5上面去。首先是安装,yum install privoxy。然后就又是配置了,默认的监听端口是8118,如图:
这个按理说是能改的,但我一改就报错,起不来服务,不知道咋回事。
然后我们需要做的就是添加一个转发规则:(注意最后的.不可省略)
然后我们重启一下这个服务systemctl restart privoxy.serivce。这样就行了,只不过我们的代理的地址变成了127.0.0.1:8118。这个地方了,注意使用代理的代码里要修改(如原来端口可能是设置的1080,要改成8118)。关于这个配置,上面那个超链里面也有一些介绍。
第六步,运行应用
首先保证,要用到的都打开着且配置好了。比如jdk,mysql,nginx,ss,privoxy等。然后使用命令java -jar 应用包名,就可以启动了。按Ctrl+C就能退出了。为了让其在后台运行,我们同样的可以使用nohup+&的方式,即nohup java -jar xxx.jar > xxx.log &。这样就运行在后端了,输出的信息可以在xxx.log里面看。当要结束的时候,使用jps命令查看一下发现有个jar进程及其进程号,然后使用kill 进程号就行了。
第七步,访问测试
在我们的电脑上,输入上那台linux机器的IP地址就行了,看看有啥结果,各种测试测试,多跑几遍。刚开始,可能会有一些小错误或者一些改进,比如一些参数需要修改啊之类的。然后我们只需要把我们改好的生成jar包上传上去,把原来的关掉,再运行新的就可以了。
如果习惯命令行编程,或者是安装了图形化界面,也可尝试直接在linux下面修改、编译、打包。免去来回倒腾的麻烦。