0%

1. 上传文件到ECS服务器

你可以使用SCP或SFTPxx。配置好公钥后,文件上传到你的ECS服务器路径上。以SCP为例:

1
scp /path/to/yourfile.html username@your-ecs-ip:/path/to/server/directory
  • /path/to/yourfile.html 是你本地文件的路径。
  • username 是你在ECS服务器上的用户名。
  • your-ecs-ip 是你的ECS服务器的IP地址。
  • /path/to/server/directory 是你希望在ECS服务器上存放文件的路径。

安装和配置Web服务器

在ECS服务器上使用有sudo权限的用户进行操作,安装一个Web服务器,比如Nginx或Apache。这里我是基于CentOS的Nginx:

1
2
sudo yum install epel-release
sudo yum install nginx

启动Nginx并设置其开机自启动:

1
2
sudo systemctl start nginx
sudo systemctl enable nginx

浏览器输入你的服务器ip,如果安装成功会显示:

1
Welcome to HTTP Server Test Page!
阅读全文 »

记录基于 Express 的用户注册与登录接口实现,使用了 bcrypt 进行密码加密,JWT(jsonwebtoken)进行登录状态的令牌管理,并结合环境变量安全存储密钥。


环境准备

  • Node.js
  • Express 框架
  • bcrypt:密码哈希加密
  • jsonwebtoken:JWT 令牌生成
  • Sequelize 模型定义
  • dotenv:管理环境变量(SECRET_KEY)

1. 环境变量配置

在项目根目录创建 .env 文件,写入如下内容:

1
SERVER_TOOLS_LOGIN_SECRET=jwt_secret_key(自定义密钥)

注意: 请使用足够复杂且随机的密钥,确保安全。

在项目入口文件(如 app.jsserver.js)中添加:

1
require('dotenv').config();
阅读全文 »

模型定义

HostConfigs 表结构

字段名 类型 说明 允许空 默认值 备注
id BIGINT UNSIGNED 自增主键,TaskLogs索引ID 自增
host VARCHAR(100) 网站域名
template VARCHAR(100) 模板名
dirpath VARCHAR(100) 路径 NULL
config LONGTEXT 配置(TEXT LONG) NULL
tasktag INT 任务类型 1 TASK_TAG
status INT 任务状态 1111 DEPLOY_STATUS
requestAt DATETIME 任务请求时间 NULL
finishedTimes DATETIME 最近更新 NULL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
const DEPLOY_STATUS = {
SKIPPED: -9999, //初始化
PRIORITY: 0, //优先进行
PENDING: 1111, //排队
IN_PROGRESS: 8888, //执行中..
DONE: 9999, //执行成功
FAILED: -1, //执行失败
};

const DEPLOY_STATUS = {
PRIORITY: 0, //优先
PENDING: 1111, //排队
IN_PROGRESS: 8888, //执行中
DONE: 9999, //完成
FAILED: -1, //失败
};

索引:

  • 联合索引: host, dirpath
阅读全文 »

常用模板

序号 模板ID 首页广告位(ad0_) 详情页广告位(ad1_) 其他广告位(ad2_)
a16 16_slowforeign 3 3 1
a22 22_qdgamebox 3 2 2
a26 26_populargame 2 2 1
a28 28_clh5game_240628 3 2 2
a29 29_woaida_240705 4 2 2
a30 30_wotop2_240712 3 2 2
a31 31_wo4fang_240719 4 3 2
a32 32_j59xyz_241212 4 2 2
a33 33_hexblazea_241219 4 2 2
a38 38_conver_250306 4 2 1
a39 39_ufreegames_250310 4 2 1
a40 40_gbanana_250313 4 2 1
a39 41_morning_DL25311 4 2 1
a40 41_picture_DL25319 4 2 1
a41 41_journey_DL250320 4 2 1
a42 41_airport_DL25522 3 2 2
a43 42_TimeTools 2 0 0
a44 43_problem_250506 4 2 1
a45 44_meeting_250519 4 2 1
阅读全文 »

升级思路

  • 针对游戏数据引入多语言json, 以原 id 为索引,存储 namecategoryinstructions 翻译内容。

  • 在每个模板内创建 content.js存放特定词组的多语言数据,统一放common.js 同路径。

json放置路径(暂定不动)

1
2
3
4
5
6
util/
├── language/
│ ├── en.json # 默认en,仅参照用
│ ├── es.json # 西班牙语
│ ├── fr.json # 法语
│ └── de.json # 德语

自定义脚本

1
2
3
4
5
6
7
//示例
export const ct_recommend = {
en: `Recommend For You`,
fr: `Recommandé pour vous`,
de: `Empfohlen für dich`,
es: `Recomendado para ti`
};

更新操作

获取语言

通过util.getLanguage() 检索当前是否需要翻译,得到 enesdefr 四种语言之一,默认为en

1
const language = util.getLanguage();  // 获取到语言分4种: en, es, de, fr
阅读全文 »

MySQL安装配置

配置 MySQL 源

首先,需要添加 MySQL 的 Yum 源,确保安装的是最新版本的 MySQL。

1
2
sudo wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
sudo rpm -ivh mysql80-community-release-el7-3.noarch.rpm

安装 MySQL Server

安装 MySQL Server:

1
sudo yum install mysql-community-server

启动 MySQL 服务

1
2
3
4
sudo systemctl start mysqld

# 开机自启
sudo systemctl enable mysqld

初次登入

获取 MySQL 临时 root 密码

在 MySQL 安装过程中,会生成一个临时的 root 密码,查看日志文件来获取它:

1
sudo grep 'temporary password' /var/log/mysqld.log

这将输出类似如下的临时密码:

1
2025-03-05T09:40:27.489070Z 1 [Note] A temporary password is generated for root@localhost: abc123xyz

记下临时密码(例如 abc123xyz)。

阅读全文 »

问题描述:在编写系统程序中,出现bug导致系统CPU负载或者跑满了。导致客户端ssh无法链接上来。

解决办法:优化出问题的程序,设定CPU阔值,超过重启。

监控与重启:

创建监控脚本

1.创建脚本文件: 在根目录下创建一个新的脚本文件,例如 cpu_monitor.sh。

1
2
3
sudo nano /cpu_monitor.sh
# 或者
sudo vim /cpu_monitor.sh

2.编写以下脚本内容,THRESHOLD=9090代表CPU阔值上限为90%,超过就要重启。

1
2
3
4
5
6
7
8
#!/bin/bash
THRESHOLD=90
CPU_USAGE=$(mpstat 1 1 | awk '/Average/ {print 100 - $12}')

if (( $(echo "$CPU_USAGE > $THRESHOLD" | bc -l) )); then
echo "CPU usage is above $THRESHOLD%. Restarting server..."
sudo reboot
fi

3,保存退出后,执行授予权限:

1
sudo chmod +x /cpu_monitor.sh
1
sudo crontab -e

添加cron代码内容,每分钟检测一次:

1
* * * * * /cpu_monitor.sh

测试

安装 stress-ng

1
2
sudo yum install epel-release
sudo yum install stress-ng

查看服务器为几线程:

1
nproc

使用 stress-ng 设置 CPU 负载,如下第一个2代表两个线程,96代表是CPU负载接近96%,20s是定时器时长。

1
stress-ng --cpu 2 --cpu-load 96 --timeout 20s

等待一段时间 服务器重启就是成功了。

基础代码

{your-pixel-id-goes-here}替换为实际的pixelID,将以下代码放在网页的<head></head>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<!-- Facebook Pixel Code -->
<script>
!function(f,b,e,v,n,t,s)
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s)}(window, document,'script',
'https://connect.facebook.net/en_US/fbevents.js');
fbq('init', '{your-pixel-id-goes-here}');
fbq('track', 'PageView');
</script>
<noscript>
<img height="1" width="1" style="display:none"
src="https://www.facebook.com/tr?id={your-pixel-id-goes-here}&ev=PageView&noscript=1"/>
</noscript>
<!-- End Facebook Pixel Code -->

如果有其他事件上报,例如ViewContent,在基础代码的fbq('track', 'PageView');行后添加该事件上报:

1
2
fbq('track', 'PageView');
fbq('track', 'ViewContent'); // 新添加的事件