远程连接
ssh yinhua@[ip] -p 31003
sudo ifconfig enp0s25:1 192.168.0.58/16
cd root proxy.sh
配置ssh公钥认证,无需密码登陆另一台机器
# 在客户端生成公钥和私钥,生成的公钥和私钥所在的目录为:~/.ssh/ 即【/root/.ssh】
ssh-keygen
#公钥为:id_rsa.pub
#私钥为:id_rsa
# 将客户端生成的公钥内容追加写入服务端 /root/.ssh/authorized_keys文件中(没有此文件则手动创建)
脚本:
autossh -M 52345 -Nf -R 0.0.0.0:8031:192.168.0.58:8000 ubuntu@[ip]
后台运行
nohup ./frps -c frps.ini >/dev/null 2>&1 & #代理端
nohup ./frpc -c ./frpc.ini >/dev/null 2>&1 & #客户端(局域网本地)
# node项目部署到docker
在项目根目录创建 Dockerfile 文件,里面填一下代码
FROM node:12.18.4
Create app directory
RUN mkdir -p /home/yinhua/Service
WORKDIR /home/yinhua/Service
COPY . /home/yinhua/Service
RUN npm install
RUN npm install nodejieba
EXPOSE 8000
CMD [ "node", "app.js" ]
构建项目
docker build -t mynodeapp .
运行项目
docker run --name [name] -d -p 8000:8000 yinhua-share-server
修改docker中的文件
apt-get update、apt-get install vim // 安装vim对文件修改
apt-get rm // 安装文件删除工具
# Nginx配置
docker run --name nginxTest -p 8080:80 -v /mnt/c/Download/default.conf:/etc/nginx/conf.d/default.conf -d nginx
server {
# 服务器端口
listen 80;
# 服务器名称
server_name test.com;
# 路径配置
location / {
# 相对路径配置,基于nginx启动的位置
root /home/dist;
index index.html;
try_files uri/ /index.html;
}
# 后端接口,反向代理
location ^~/api{
# 反向代理
proxy_pass http://ip:port/;
}
}
注意点:
nginx反向代理配置如何去除前缀,在proxy_pass 反向代理地址最后加一个/,不需要去掉不用加。
在location匹配的url路径前添加^~/
反向代理
server {
listen 80;
server_name 127.0.0.1:3001;
location / {
proxy_set_header X-Real-IP proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto http_host;
proxy_set_header X-Nginx-Proxy true;
proxy_pass http://127.0.0.1:8080;
proxy_redirect off;
}
}
部署vue静态页面
server {
listen 80;
listen [::]:80;
server_name pezihan.xyz;
index index.html index.htm default.htm default.html;
root /www/web/dist;
location / {
# 当使用History路由时需要加上次配置,不然网页刷新会404
try_files uri/ /index.html?$query_string;
}
}
./nginx -t # 检测配置文件是否正确
systemctl restart nginx #重启
./nginx -s reload # 重启
./nginx restart #强制重启
# docker启动
运行 service docker start
docker 查看运行中的镜像 docker ps
docker 查看运行过的镜像 docker ps -a
运行以前运行过的容器镜像(重启容器) docker restart id
删除运行过的镜像 docker rm id
删除images镜像 docker rmi id
运行node docker run -itd --name node-test node
运行mysql docker run -itd --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 8457e9155715
运行redis docker run -itd --name redis-test -p 6379:6379 redis
运行nginx docker run --name nginx-test -p 8080:80 -d nginx
进入镜像内部 docker run -it 844f91d74542 bash
查看日志 docker logs id
进入正在运行容器内部: docker exec -it ef34f4dffb31 /bin/bash
端口映射 8000:80 (宿主机:dokcer容器应用端口)
查看当前网络ip配置 ifconfig
```json
查看指定时间后的日志,只显示最后100行 -f 跟踪实时日志 -t 显示时间戳
docker logs -f -t --since="2020-05-08" --tail=100 CONTAINER_ID
mysql
mysql8修改默认caching_sha2_password的密码模式为传统模式,兼容node的mysql模块
docker
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
或则 (宿主机)
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
链接mysql 修改最大连接数
mysql -hlocalhost -uroot -p123456
show variables like '%max_connections%';
set global max_connections=2000;
show variables like '%max_connections%';
exit;
mysql 配置
select @@session.sql_mode;
select @@global.sql_mode;
set @@global.sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
set @@session.sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
pm2 命令
$ pm2 start app.js # 启动app.js应用程序
$ pm2 start app.js -i 4 # cluster mode 模式启动4个app.js的应用实例
$ pm2 start app.js --name="api" # 启动应用程序并命名为 "api"
$ pm2 start app.js --watch # 当文件变化时自动重启应用
$ pm2 start script.sh # 启动 bash 脚本
$ pm2 start --name="name" npm -- run test 通过npm去启动
$ pm2 list # 列表 PM2 启动的所有的应用程序
$ pm2 monit # 显示每个应用程序的CPU和内存占用情况
$ pm2 show [app-name] # 显示应用程序的所有信息
$ pm2 logs # 显示所有应用程序的日志
$ pm2 logs [app-name] # 显示指定应用程序的日志
$ pm2 flush # 清空所有日志文件
$ pm2 stop all # 停止所有的应用程序
$ pm2 stop 0 # 停止 id为 0的指定应用程序
$ pm2 restart all # 重启所有应用
$ pm2 reload all # 重启 cluster mode下的所有应用
$ pm2 gracefulReload all # Graceful reload all apps in cluster mode
$ pm2 delete all # 关闭并删除所有应用
$ pm2 delete 0 # 删除指定应用 id 0
$ pm2 scale api 10 # 把名字叫api的应用扩展到10个实例
$ pm2 reset [app-name] # 重置重启数量
$ pm2 startup # 创建开机自启动命令
$ pm2 save # 保存当前应用列表
$ pm2 resurrect # 重新加载保存的应用列表
$ pm2 update # Save processes, kill PM2 and restore processes
$ pm2 generate # Generate a sample json configuration file
ubuntu 命令
mkdir // 创建文件夹
touch // 创建文件
rm -r // 删除文件
例子:将目录A重命名为B
mv A B
例子:将/a目录移动到/b下,并重命名为c
mv /a /b/c
// 关闭node
sudo pkill node
// 关键字统计进程数
ps -ef | grep queue | grep -v grep | wc -l
// 解压缩
tar -zxvf 压缩文件名.tar.gz
// x修改权限
sudo chmod -R 777 myResources
// 检查端口占用
netstat -lnp|grep +端口号
查看端口情况:netstat -anp | grep 8888
// 关键字杀死进程
sudo ps -ef|grep renderer|grep -v grep|cut -c 9-16|xargs kill -9
// 监测日志文件
tail -f /home/路径
df -hl 查看磁盘剩余空间
df -h 查看每个根路径的分区大小
du -sh [目录名] 返回该目录的大小
du -sm [文件夹] 返回该文件夹总M数
du -h [目录名] 查看指定文件夹下的所有文件大小(包含子文件夹)
// 安装远程 ssh
sudo apt-get install openssh-server 安装
sudo /etc/init.d/ssh start 开启openssh服务
ps -e | grep ssh 验证是否开启服务 如果有输出 sshd 证明已经开启ssh服务
ubuntu 报错参考对象不支持此操作,Windows管理员运行
netsh winsock reset
ln -s /app/nodejs/bin/tsc /usr/local/bin/tsc // 软连接 ln -s 源文件路径 全局运行路径(不变)
window 命令
dir #查看文件目录
md 或 mkdir # 创建文件夹
rd 或 rmdir # 删除文件夹
echo >sd.txt # 创建文件
del a.txt # 删除a.txt的文件
del *.txt # 删除所有后缀为.txt的文件
explorer . # 打开当前cmd所在的文件夹
设置服务命令(加入开机自启动)
redis-server --service-install redis.windows-service.conf --loglevel verbose
卸载服务:redis-server --service-uninstall
开启服务:redis-server --service-start
停止服务:redis-server --service-stop
ubuntu快速安装环境nodejs脚本
wget -qO- https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt-get install -y nodejs
centos快速安装环境nodejs脚本
yum clean all && yum makecache fast
yum install -y gcc-c++ make
curl -sL https://rpm.nodesource.com/setup_14.x | sudo -E bash -
sudo yum install nodejs
网友评论