我的站地址是: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,咱們就能夠把網站的部署文件上傳到服務器上了。
按照教程啓動了項目後,咱們就能夠直接用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