我的博客搭建----基於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
相關文章
相關標籤/搜索