云服务器能否部署聊天系统,实现外网通讯?
對于開源聊天系統(tǒng)來說,筆者最推薦的是RocketChat,主要因?yàn)槠涫褂檬址奖悴⑶夜δ軜O其豐富。
Rocket.Chat使用Meteor框架做的開源消息應(yīng)用。是領(lǐng)先的免費(fèi)開源團(tuán)隊(duì)聊天Slack的替代品,功能強(qiáng)大,它支持群組聊天,直接通信,私聊群,桌面通知,媒體嵌入,鏈接預(yù)覽,文件上傳,語音/視頻聊天,截圖等等,還支持實(shí)時(shí)翻譯,實(shí)現(xiàn)用戶之間的自動(dòng)實(shí)時(shí)消息轉(zhuǎn)換。使用Rocket.Chat可以完全控制交流通信。
一、關(guān)于這套系統(tǒng),三種解決方案
1.直接訪問:
?
然后注冊賬號即可用,這種跟使用QQ基本沒有區(qū)別。
2.單單部署WEB端,關(guān)于頁面樣式我們自己DIY,重在不是使用功能,主要是折騰的快樂。其服務(wù)器依舊使用的是riot.im自身的服務(wù)器。
3.部署WEB還有后端,這種很麻煩,但已經(jīng)完全從官方獨(dú)立出來了。
筆者建議:如果非生產(chǎn)環(huán)境,部署WEB端已經(jīng)很快樂了。自己部署服務(wù)器最大問題不好管理,數(shù)據(jù)備份也是問題。
然而生命不息,折騰不止,本文把從服務(wù)端到WEB所有部署全部講解一遍,供大家自行抉擇!
二、開源聊天系統(tǒng)正式安裝
云服務(wù)器使用:新睿云CentOS7X64
最先安裝開發(fā)工具包:
yum -y groupinstall "Development Tools"
安裝程序所需依賴:
yum -y install libtiff-devel libjpeg-devel libzip-devel freetype-devel lcms2-devel libwebp-devel tcl-deve
安裝pip:
easy_install pip
創(chuàng)建虛擬運(yùn)行環(huán)境:
virtualenv ~/.synapse
激活運(yùn)行環(huán)境:
source ~/.synapse/bin/activate
升級pip到最新版本:
pip install --upgrade pip
升級setuptools:
pip install --upgrade setuptools
使用pip安裝Matrix:
pip install https://github.com/matrix-org/synapse/tarball/master
確認(rèn)安裝成功是類似如下圖的回顯,如果有錯(cuò)誤就要根據(jù)自己的錯(cuò)誤信息來排查解決了:
現(xiàn)在進(jìn)入到程序目錄
cd ~/.synapse
執(zhí)行如下命令創(chuàng)建一個(gè)配置文件:
python -m synapse.app.homeserver --server-name biubiubiu --config-path homeserver.yaml --generate-config
注:–server-name這里最好填寫一個(gè)你的站點(diǎn)域名,如果是測試的話,填寫你的系統(tǒng)主機(jī)名即可。
運(yùn)行Matrix:
synctl start
因?yàn)槭浅醮芜\(yùn)行,我們需要?jiǎng)?chuàng)建一個(gè)管理員賬號,執(zhí)行:
register_new_matrix_user -c homeserver.yaml http://localhost:8008
如圖所示:
編輯homeserver.yaml
vi homeserver.yaml
開啟用戶注冊:
enable_registration: True
如圖所示:
然后重啟Matrix:
synctl restart
現(xiàn)在服務(wù)已經(jīng)成功跑在機(jī)器的本地了,要對外網(wǎng)提供訪問,必然要配置一個(gè)反向代理。這里我使用Nginx。
新建一個(gè)repo:
vi /etc/yum.repos.d/nginx.repo
寫入:
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
執(zhí)行:
yum -y install nginx
設(shè)置Nginx開機(jī)啟動(dòng)并運(yùn)行Nginx:
systemctl enable nginx
systemctl start nginx
新建一個(gè)站點(diǎn)conf:
vi /etc/nginx/conf.d/riot.conf
寫入:
server {
????listen ??????80;
????server_name ?你的站點(diǎn)域名;
????
location / {
????proxy_pass ??????http://localhost:8008;
????proxy_set_header Host ?????$host;
????proxy_set_header X-Real-IP $remote_addr;
????}
}
重啟Nginx:
systemctl restart nginx
這樣,我們就部署好了一臺Riot的聊天服務(wù)器。其實(shí)現(xiàn)在已經(jīng)有一個(gè)簡陋的WEBUI可以提供最基礎(chǔ)的聊天功能了,此時(shí),你訪問你的網(wǎng)站域名可以看到如下圖的頁面。但這個(gè)WEBUI太簡陋了,很顯然不適合讓用戶去使用:
所以Riot為Matrix專門開發(fā)了一套全新的WEBUI。現(xiàn)在,我們就來部署這個(gè)全新的WEB端。(不部署后端服務(wù)器,就直接看這里)
下載WEB端源碼:
進(jìn)入到Nginx的站點(diǎn)目錄內(nèi):
cd /usr/share/nginx/
解壓壓縮包:
tar -xzvf riot-v0.15.0-rc.4.tar.gz
重命名目錄:
mv riot-v0.15.0-rc.4 riot
將目錄的所有者改為nginx:
chown -R nginx:nginx riot
新建一個(gè)站點(diǎn)conf:
vi /etc/nginx/conf.d/riot-web.conf
寫入:
server {
????listen ??????80;
????server_name ?你的站點(diǎn)域名;
????#charset koi8-r;
????#access_log ?/var/log/nginx/host.access.log ?main;
????location / {
????????root ??/usr/share/nginx/riot;
????????index ?index.html index.htm;
????}
}
重啟Nginx:
systemctl restart nginx
關(guān)閉防火墻:
systemctl stop firewalld.service
這樣,我們就完成了WEB端和服務(wù)器端的部署。下面簡要說一下使用方法。
RocketChat注冊管理員賬號
注冊界面
添加bot賬號
管理員界面
聊天使用
聊天界面
點(diǎn)擊查看往期內(nèi)容回顧
互聯(lián)網(wǎng)大佬們的日常:把代碼寫成了生活
云宕機(jī)事件盤點(diǎn):IBM云服務(wù)全球宕機(jī)四小時(shí),安全穩(wěn)定成空話?
華為受制裁原因:沖擊美國半導(dǎo)體地位
國產(chǎn)射頻芯片可代替進(jìn)口,5G領(lǐng)先位置不會(huì)被撼動(dòng)
長按二維碼,關(guān)注我們
新睿云,讓云服務(wù)觸手可及
云主機(jī)|云存儲(chǔ)|云數(shù)據(jù)庫|云網(wǎng)絡(luò)
看都看完了,還不點(diǎn)這里試試
總結(jié)
以上是生活随笔為你收集整理的云服务器能否部署聊天系统,实现外网通讯?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: css ——行级元素与块级元素解析
- 下一篇: java信息管理系统总结_java实现科