跳到主要内容
版本:1.1.0

服务部署

准备目标服务器,并确保服务器上安装了Node.js,Node版本推荐>=16.x。

部署

复制应用程序代码

将XiaoJuSurvey应用程序代码从本地复制到目标服务器上。您可以使用scp命令或其他文件传输工具来完成这个任务。

安装项目依赖项

在目标服务器上,进入XiaoJuSurvey应用程序目录(通常是您刚才复制的目录),然后运行以下命令来安装项目依赖项:

cd /path/to/xiaoju-survey

cd web && npm install

cd ../server && npm install --production

构建项目

确保您已经在XiaoJuSurvey应用程序目录中:

cd /path/to/xiaoju-survey/web

npm run build

启动项目

一旦项目构建成功,您可以启动XiaoJuSurvey应用程序。默认情况下,XiaoJuSurvey会在8080端口上监听:

cd /path/to/xiaoju-survey/server

npm run start:online

配置反向代理

如果需要,您可以配置反向代理(例如Nginx或Apache)以将请求代理到XiaoJuSurvey应用程序。这将有助于您实现更高级的路由和SSL服务等功能。

🌀NOTE:nginx服务的安装流程为:nginx安装指南文档

upstream xiaojuServer {
server 127.0.0.1:8080; //这里配置我们的服务地址,可以配置多个
}

server {
listen 80; # 这里配置你想要对外的端口
server_name xxxx.com; # 这里配置您的域名

location / { # 如果需要配置指定路径访问则可以在这里进行一个访问
proxy_pass http://xiaojuServer;
proxy_redirect off;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}

比如我们想去除投放端/render路由,并且修改管理端的默认路由路径到/admin,可以使用以下方式:

server {
listen 80; # 这里配置你想要对外的端口
server_name xxxx.com; # 这里配置您的域名

location /render { # 重设C端路由默认路径到根
rewrite ^/render(.*)$ https://xxxx.com/$1 permanent;
}

location / { # 重设C端路由
proxy_pass http://xiaojuServer/render;
proxy_redirect off;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}

location /admin { # 重设B端路由
proxy_pass http://xiaojuServer/management;
proxy_redirect off;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}

当然如果我们有多台机器作为服务,也可以在upstream xiaojuServer中配置多个机器,以实现负载均衡目的。如下:

upstream xiaojuServer {
server 192.168.1.100:8080;
server 192.168.1.101:8080;
server 192.168.1.102:8080;
}

默认的负载均衡是轮询轮询(round-robin)模式,除此之外还有

  • IP转发模式:ip_hash,即根据客户端ip进行转发
  • 最少链接模式:least_conn,即根据客户端ip进行转发 还有keepalive的配置用于保持于下游服务的一个链接而不是直接销毁

当我们我们需要配置ssl,则需要添加以下配置到上述配置中:

  ssl on;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers RC4-SHA:AES128-SHA:DES-CBC3-SHA:AES256-SHA:ALL:!aNULL:!EXP:!LOW:!MD5:!SSLV2:!NULL;
ssl_certificate /usr/local/xxx.cert.crt; # 配置您的公钥
ssl_certificate_key /usr/local/xxx.key; # 配置您的私钥
ssl_session_timeout 20m;
ssl_prefer_server_ciphers on;

监控

使用适当的日志和监控工具来监视XiaoJuSurvey应用程序的运行状态。这将有助于您及时发现并解决潜在问题。

举例:

如果我们要监控服务的内存或CPU等基础指标,我们可以建立在k8s中,并安装k8s的dashboard,dashboard的安装和介绍指南地址:

如果我们要监控内存泄漏监控线上故障,由于我们是使用Node.js作为服务引擎,所以可以接入alinode或easy-monitor:

通过以上方式能相对全面的监控并帮助发现潜在问题。