我的博客搭建----基于solo

我的站地址是:http://www.iwillhaveacatoneday.cnhtml

博客是基于开源的Java 博客系统--solo搭建的,这里记录下部署过程当中遇到的一些主要问题java

后台

solo后台采的是做者本身写的Java web框架,Latke,有点像spring的精简版mysql

数据库

solo系统默认采用了H2数据库,h2是一个用Java开发的内嵌数据库,H2数据库nginx

看了下数据库配置文件local.properties是支持链接mysql这些关系型数据库的,不过目前数据量还不大,暂时先用H2,等后面有瓶颈了再考虑切换。git

日志

日志在solo.log下,能够在log4j.properties中配置github

配置文件

除了前面说的修改数据库的local.properties,修改日志的log4j.properties,还有修改网络配置的latke.properties。因为这里是打成war包以后的文件,因此它们都在> WEB-INF/classes/latke.properties 路径下web

#### Server ####
# Browser visit protocol
serverScheme=http
# Browser visit domain name
serverHost=localhost
# Browser visit port, 80 as usual, THIS IS NOT SERVER LISTEN PORT!
serverPort=8080

这里的serverHost是localhost,可能会访问不到一些solo的资源,因此建议改为部署服务器的ipspring

部署

solo项目启动是要到solo war包解压后的根目录下,用java -cp命令执行,sql

*   Windows: `java -cp "WEB-INF/lib/*;WEB-INF/classes" org.b3log.solo.Starter`
*   Unix-like: `java -cp "WEB-INF/lib/*:WEB-INF/classes" org.b3log.solo.Starter`

内部使用的是jetty容器,而不是像咱们日常项目那样把war包部署在tomcat或者像spring boot那样直接启动jar包。jettyshell

#直接执行java -cp项目会在前台执行,一旦shell退出,
#项目也会跟着退出,因此要执行下面这条命令
#用nohub保证命令在后台执行

nohup java -cp WEB-INF/lib/*:WEB-INF/classes org.b3log.solo.Starter >/dev/null 2>&1 &

具体的详细教程见--solo用户指南

部署环境

防火墙

笔者将网站部署在腾讯云上,不得不吐槽下腾讯云,真心不如阿里云好用,想用ftp上传个文件发现21端口被封了,设置了安全组也彻底不起效果,多是个人操做姿式不对吧。因而只好本身本地在安全组里把端口全放,本身在服务器装防火墙。

具体操做参考这篇文章,腾讯云FTP的配置

完了上传文件,启动项目,发现8080端口无法访问,因而乎继续添加端口

firewall-cmd --zone=public --add-port=8080/tcp --permanent

这时候可能会报一下错误

firewalld is not running

开启防火墙便可。

systemctl start firewalld

而后继续执行命令,并重载防火墙

firewall-cmd --reload

success,咱们就能够把网站的部署文件上传到服务器上了。

ngnix

按照教程启动了项目后,咱们就能够直接用ip来访问网站。但这总有点不太正规,并且也不安全。这时咱们就须要给网站加上域名了。
在申请下来域名,绑定了域名,配置了DNS解析后。你会发现域名无法访问网站,这是怎么回事的,原来咱们项目是在8080端口启动,而域名默认对应的是80端口。这时候咱们能够把咱们的网站启动端口改为80,可是若是后面系统想再部署一个网站,那么就没办法这么作了,并且这种作法把系统端口直接暴露到互联网,也不安全。因此咱们采用nginx来实现端口的转发。
安装教程见——## centos7安装nginx

具体配置以下,载自solo用户指南

upstream backend {
    server localhost:8080; # Tomcat/Jetty 监听端口
}

server {
    listen       80;
    server_name www.iwillhaveacatoneday.cn; # 博客域名

    access_log off;

    location / {
        proxy_pass http://backend$request_uri;
        proxy_set_header  Host $host:$server_port;
        proxy_set_header  X-Real-IP  $remote_addr;
        client_max_body_size  10m;
    }
}

对应的latke.properties文件也要修改,不然除了主页,跳转其它页面的连接仍是ip

serverScheme=http 
serverHost=www.iwillhaveacatoneday.cn
serverPort=80
相关文章
相关标签/搜索