• 个人博客搭建----基于solo


    个人站地址是:http://www.iwillhaveacatoneday.cn

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

    后台

    solo后台采的是作者自己写的Java web框架,Latke,有点像spring的精简版

    数据库

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

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

    日志

    日志在solo.log下,可以在log4j.properties中配置

    配置文件

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

    #### 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的资源,所以建议改成部署服务器的ip

    部署

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

    *   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包。jetty

    #直接执行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
    
  • 相关阅读:
    Navicat工具破解
    ios7开发者必知
    浏览器工作原理
    Lettcode_104_Maximum Depth of Binary Tree
    LeetCode:Balanced Binary Tree
    error: openssl/md5.h: No such file or directory
    欢迎来到Swift天地(Welcome to Swift)
    最大子阵列和
    【Cocos2d-x Lua】数据库封装类型的操作
    python于lxml应用
  • 原文地址:https://www.cnblogs.com/MarsCheng/p/9362293.html
Copyright © 2020-2023  润新知