安装
官网授权得到压缩包后,参考以下步骤进行安装。官网地址 https://gofly.sopans.com
环境要求
推荐使用Linux服务器(ubuntu)
代码语言:javascript复制硬件
基础阶段:1核 1G内存 1M带宽 50G硬盘(最低配置即可)
中级阶段:4核 8G内存 5M带宽 50G硬盘(有一定访问量)
高级阶段:8核 16G内存 10M带宽 50G硬盘(访问量比较大)
软件
Mysql >= 5.6 (需支持innodb引擎)
Nginx
宝塔面板
提前安装宝塔面板,宝塔面板可以很方便的配置域名、反向代理、数据库,所以建议安装一下。安装nginx,mysql数据库(5.6)。
创建数据库
请记住设置的数据库名,用户名,密码
部署服务
上传压缩包文件到服务器,比如上传到/www/wwwroot/go-fly-pro,给此目录的所有文件赋权限777
编辑config/mysql.json,修改为创建数据库时设置的数据库名,用户名,密码
进入终端,切换目录到/www/wwwroot/go-fly-pro
cd /www/wwwroot/go-fly-pro
执行导入数据库命令,确保数据库配置信息正确,自动创建导入数据库相关表
./go-fly-pro install
执行开启服务命令,监听端口,开启服务,-d为守护进程模式
./go-fly-pro server -d
到宝塔安全页面将8081端口开
如果是云服务器,则安全组也需要设置下让8081端口可以被外网访问。
访问外网地址: http://ip:8081/login
配置域名
到宝塔网站页面=>添加站点
设置反向代理,反代到客服程序监听的默认8081端口
增加支持websocket的反向代理参数
代码语言:javascript复制 proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
增加nginx直接响应静态资源
代码语言:javascript复制 location /static {
root /www/wwwroot/go-fly-pro;//注意这里的路径
}
完整的配置文件
代码语言:javascript复制#PROXY-START/
location ~* .(gif|png|jpg|css|js|woff|woff2)$
{
proxy_pass http://127.0.0.1:8081;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
expires 12h;
}
location /
{
proxy_pass http://127.0.0.1:8081;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
add_header X-Cache $upstream_cache_status;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
#Set Nginx Cache
add_header Cache-Control no-cache;
}
location /static{
root /www/wwwroot/go-fly-pro;
}
#PROXY-END/
配置HTTPS
需要先暂停反向代理,才能去开启
非宝塔部署
ubuntu系统安装nginx
代码语言:javascript复制apt-get install curl gnupg2 ca-certificates lsb-release
echo "deb http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" | tee /etc/apt/sources.list.d/nginx.list
curl -fsSL https://nginx.org/keys/nginx_signing.key | apt-key add -
apt-key fingerprint ABF5BD827BD9BF62
apt-get update
apt-get install nginx
centos系统安装nginx
vim 编辑 /etc/yum.repos.d/nginx.repo
代码语言:javascript复制[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
代码语言:javascript复制yum install nginx
配置nginx反向代理
代码语言:javascript复制location /static { } 这里配置的是,访问静态资源的时候,直接nginx返回静态资源,就不用走到go后端服务了
proxy_pass http://127.0.0.1:8081; 这里就是重点了,反向代理到后端8081端口
下面这几句是传递真实IP到后端服务
proxy_set_header X-Real-IP $remote_addr;
升级连接成为websocket连接 , 支持websocket
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
完整的nginx配置文件
代码语言:javascript复制server{
listen 80;
server_name gofly.sopans.com;
access_log /var/log/nginx/gofly.sopans.com.access.log main;
location /static {
root /var/www/html/go-fly-pro;//自己的部署路径,静态文件直接nginx响应
}
location / {
proxy_pass http://127.0.0.1:8081;
proxy_http_version 1.1;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
分布式方案
目前为了减少依赖当前项目不支持分布式,但是可以有其他实现方案
因为无依赖部署很方便,所以可以按域名进行分布,比如kf1.sopans.com kf2.sopans.com ,部署到不同的机器上,都使用一个MySQL数据库。前端跳转到客服的时候,通过访客ID进行下分配策略
按地域分布,比如cn.sopans.com部署到国内机器, hk.sopans.com部署在香港,na.sopans.com 部署到北美,根据访客集中地区进行前端分配。