快速安装常用工具
git node
curl --silent --location https://rpm.nodesource.com/setup_10.x | sudo bash -
sudo yum -y install nodejs git
删除无关的文件
cd /home/admin/app && ls | egrep -v "^(deep|zbt)[^.]*$" | xargs rm -rf
静态代码部署
主机部署 - 下载路径
/home/admin/app/zbt_fab_website.tgz
主机部署 - 部署脚本
cd /home/admin/app/ && mkdir -p ./zbt_fab_website && tar zxvf zbt_fab_website.tgz -C ./zbt_fab_website && cd ./zbt_fab_website && sh pub.sh
代码中的脚本文件pub.sh
#!/bin/sh
kill -9 $(lsof -i:7001 -t)
#或 lsof -i:7001 | cut -c 9-15 | xargs kill -9
sudo systemctl start nginx && systemctl enable nginx
前端react+antd的部署
主机部署 - 下载路径
/home/admin/app/deep_foundation_front.tgz
构建 - 构建物上传
#制品名称
deep_foundation_front
#打包路径
dist/
pub.sh
✅ 制品中包含打包路径的目录
主机部署 - 部署脚本
cd /home/admin/app/ && mkdir -p ./deep_foundation_front && tar zxvf deep_foundation_front.tgz -C ./deep_foundation_front && cd ./deep_foundation_front && sh pub.sh
代码中的脚本文件pub.sh
#!/bin/sh
kill -9 $(lsof -i:7001 -t)
sudo systemctl start nginx && systemctl enable nginx
egg框架的部署
主机部署 - 下载路径
/home/admin/app/deep_foundation_nodejs.tgz
主机部署 - 部署脚本
cd /home/admin/app/ && mkdir -p ./deep_foundation_nodejs && tar zxvf deep_foundation_nodejs.tgz -C ./deep_foundation_nodejs && cd ./deep_foundation_nodejs && sh pub.sh
代码中的脚本文件pub.sh
#!/bin/sh
kill -9 $(lsof -i:7001 -t)
npm run tsc
npm run start
nginx配置文件
vim /etc/nginx/nginx.conf 编辑完成重载配置文件 sudo nginx -s reload && systemctl restart nginx
#* Official English Documentation: http://nginx.org/en/docs/
#* Official Russian Documentation: http://nginx.org/ru/docs/
#运行用户
user root;
#启动进程,通常设置成和cpu的数量相等或者2倍于cpu的个数(具体结合cpu和内存)。默认为auto
worker_processes auto;
#全局的错误日志和日志级别[ debug | info | notice | warn | error | crit ]
error_log /var/log/nginx/error.log;
#pid进程文件
pid /run/nginx.pid;
# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;
#nginx使用printf打印输出配置
#daemon off;
#master_process off;
#工作模式以及连接数上限
events {
worker_connections 1024;
}
http {
#设定日志格式
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
#access日志文件的路径,采用上面定义的main 格式记录,注意路径是否存在
access_log /var/log/nginx/access.log main;
#开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,
#对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,
#以平衡磁盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常把这个改成off。默认开启状态
sendfile on;
#防止网络阻塞
tcp_nopush on;
#tcp协议
tcp_nodelay on;
#长连接超时时间,单位是秒
keepalive_timeout 65;
#类型最大大小
types_hash_max_size 2048;
#设定mime类型,类型由mime.type文件定义。文件扩展名与文件类型映射表
include /etc/nginx/mime.types;
#默认文件类型
default_type application/octet-stream;
#开启gzip压缩输出
gzip on;
gzip_disable "msie6";
gzip_vary on;
gzip_proxied any;
gzip_comp_level 8; #压缩级别
gzip_buffers 16 8k;
#gzip_http_version 1.1;
gzip_min_length 100; #不压缩临界值
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
include /etc/nginx/conf.d/*.conf;
#负载均衡池
upstream one_pool{
server 127.0.0.1:3000;
}
upstream two_pool{
server 127.0.0.1:7001;
}
#————————————————————————————————————————————————————————————
server{
listen 80;
server_name dev.gdpi.club;
location / {
#定义服务器的默认网站根目录位置
#root /home/admin/app/zbt_fab_website;
root /home/admin/app/Learn_GithubStar/dist;
#定义首页索引文件的名称 定义多个用空格隔开
index index.html index.htm;
try_files $uri $uri/ /index.html;
error_page 405 =200 http://$host$request_uri;
}
#access_log /var/log/nginx/dev-trainmobile-yingtongscf-com.log;
}
#————————————————————————————————————————————————————————————
server {
listen 80 ;
server_name cdn.gdpi.club;
location / {
proxy_pass http://one_pool$document_uri;
# proxy_pass http://127.0.0.1:7001$document_uri;
# rewrite ^/(.*)$ http://www.56zx.com/$1 permanent;
# set $server 0;
# if ( $query_string ~* ^(.*)c=config\b|uplog\b(.*)$ ){
# proxy_pass http://other;
# }
# if ($query_string ~* "server=(\d+)$") {
# set $server $1;
# }
# if ($server = "100"){
# proxy_pass http://192.168.0.100:8008;
# }
# if ($server = "100"){
# proxy_pass http://192.168.0.101:8008;
# }
# if ($server = "0"){
# proxy_pass http://images;
# }
proxy_set_header Host $host;
proxy_set_header X-Nginx-Proxy true;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_redirect off;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
# add_header 'Access-Control-Allow-Origin' '*';
# add_header 'Access-Control-Allow-Credentials' 'true';
# add_header 'Access-Control-Allow-Headers' 'Content-Type, x-csrf-token, X-Access-Token, Accept';
# add_header 'Access-Control-Allow-Methods' 'GET,HEAD,PUT,POST,DELETE,PATCH';
#limit_req zone=ddos burst=30 nodelay;
# proxy_ignore_headers "Cache-Control" "Expires";
# proxy_pass_header Set-Cookie;
# expires 7d;
# proxy_http_version 1.1;
}
}
#————————————————————————————————————————————————————————————
#虚拟主机的配置
server {
#监听窗口
listen 80 default_server;
listen [::]:80 default_server;
#定义使用localhost,也可以自动定义域名访问
#域名可以有多个用空格隔开
server_name _;
root /usr/share/nginx/html;
# 加载默认服务器块的配置文件
include /etc/nginx/default.d/*.conf;
if ($host = 'return.gdpi.club'){
return 301 https://$server_name$request_uri;
# return 301 https://www.jianshu.com;
}
location / {
#定义服务器的默认网站根目录位置
root /home/admin/app/deep_foundation_front/dist;
#定义首页索引文件的名称 定义多个用空格隔开
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
#设定查看Nginx状态的地址
location /nginx_status {
#stub_status on;
access_log on;
auth_basic "nginx_status";
#auth_basic_user_file conf/htpasswd;
}
# location ~ .*\.(gif|jpg|jpeg|png)$ {
# expires 24h;
# root /images/;#指定图片存放路径
# access_log /home/nginx/logs/images.log;#图片 日志路径
# proxy_store on;
# proxy_store_access user:rw group:rw all:rw;
# proxy_temp_path /home/images/;#代理临时路径
# proxy_redirect off;
# proxy_set_header Host 127.0.0.1;
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# proxy_set_header X-Real-IP $remote_addr;
# client_max_body_size 10m;
# client_body_buffer_size 1280k;
# proxy_connect_timeout 900;
# proxy_send_timeout 900;
# proxy_read_timeout 900;
# proxy_buffer_size 40k;
# proxy_buffers 40 320k;
# proxy_busy_buffers_size 640k;
# proxy_temp_file_write_size 640k;
# if ( !-e $request_filename) {
# proxy_pass http://127.0.0.1:8088;
# }
# }
#location /new {
# 此为新应用index,static目录,同时注意这里是alias,不是root,还有以及new的后面有/结尾
# alias /usr/share/nginx/html/new/;
# try_files $uri $uri/ /new/index.html;
# index index.html index.htm;
# }
#location /api {
# proxy_pass http://47.93.240.205:8800;
# }
# 将PHP脚本代理到在127.0.0.1:80上监听的Apache
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# 将PHP脚本传递给在127.0.0.1:9000上监听的FastCGI服务器
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# 如果Apache的文档根与nginx的一致,禁止访问.htaccess文件
#location ~ /\.ht {
# deny all;
#}
#定义404错误提示页面
error_page 404 /404.html;
location = /40x.html {
}
# 定义 50x 错误提示页面
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
#————————————————————————————————————————————————————————————
server {
listen 7002 ;
server_name gdpi.club;
location / {
#定义服务器的默认网站根目录位置
root /home/admin/app/Learn_GithubStar/dist;
#root /home/admin/app/zbt_fab_website;
#定义首页索引文件的名称 定义多个用空格隔开
index index.html index.htm;
try_files $uri $uri/ /index.html;
error_page 405 =200 http://$host$request_uri;
}
#定义404错误提示页面
error_page 404 /404.html;
location = /40x.html {
}
#定义 50x 错误提示页面
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
#————————————————————————————————————————————————————————————
server {
listen 7003 ;
server_name gdpi.club;
location / {
#定义服务器的默认网站根目录位置
root /home/admin/app/zbt_fab_website;
#定义首页索引文件的名称 定义多个用空格隔开
index index.html index.htm;
try_files $uri $uri/ /index.html;
error_page 405 =200 http://$host$request_uri;
}
#定义404错误提示页面
error_page 404 /404.html;
location = /40x.html {
}
#定义 50x 错误提示页面
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
#————————————————————————————————————————————————————————————
server {
listen 8000 ;
server_name gdpi.club;
location / {
#定义服务器的默认网站根目录位置
root /home/admin/app/Learn_scaffold_cli_doc/dist;
#定义首页索引文件的名称 定义多个用空格隔开
index index.html index.htm index.js;
try_files $uri $uri/ /index.html;
error_page 405 =200 http://$host$request_uri;
}
#定义404错误提示页面
error_page 404 /404.html;
location = /40x.html {
}
#定义 50x 错误提示页面
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
#————————————————————————————————————————————————————————————
server {
listen 8002 ;
server_name gdpi.club;
location / {
#定义服务器的默认网站根目录位置
root /home/admin/app/yunxi_ui_ultra/dist;
#定义首页索引文件的名称 定义多个用空格隔开
index index.html index.htm index.js;
try_files $uri $uri/ /index.html;
error_page 405 =200 http://$host$request_uri;
}
#定义404错误提示页面
error_page 404 /404.html;
location = /40x.html {
}
#定义 50x 错误提示页面
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
#————————————————————————————————————————————————————————————
}
# 另一个虚拟主机使用混合 ip name port 的配置 启用TLS的服务器的设置
# server {
# listen 443 ssl http2 default_server;
# listen [::]:443 ssl http2 default_server;
# #定义使用localhost,也可以自动定义域名访问
# server_name _;
# root /usr/share/nginx/html;
# #ssl证书的pem文件
# ssl_certificate "/etc/pki/nginx/server.crt";
# #ssl证书的key文件
# ssl_certificate_key "/etc/pki/nginx/private/server.key";
# #设置存储session参数的缓存的类型和大小
# #off:严格禁止使用会话缓存:nginx明确告知客户端会话不可重用。
# #none:会话缓存是不允许的:nginx告知客户端会话可以重用,但并没有在缓存中存储会话参数。
# #builtin:在OpenSSL中构建缓存;只能被一个工作进程使用。缓存的大小在会话中指定,如果没有指定大小,默认20480个会话。使用内置缓存会导致内存碎片化。
# #shared:缓存在所有工作进程之间共享。缓存大小按照字节为单位指定;1MB可以存储4000个会话。每块共享内存都应该起个名字。同一块缓存可以在多个虚拟服务中使用。
# ssl_session_cache shared:SSL:1m;
# #指定客户端可以重用会话参数的时间
# ssl_session_timeout 10m;
# #密码套件
# ssl_ciphers PROFILE=SYSTEM;
# #设置协商加密算法时,优先使用我们服务端的加密套件,而不是客户端浏览器的加密套件。
# ssl_prefer_server_ciphers on;
# # 加载默认服务器块的配置文件.
# include /etc/nginx/default.d/*.conf;
# location / {
# root html;
# index index.html index.htm;
# }
# error_page 404 /404.html;
# location = /40x.html {
# }
# error_page 500 502 503 504 /50x.html;
# location = /50x.html {
# }
# }
Vim中如何全选复制粘贴
全部删除:按esc键后,先按gg(到达顶部),然后dG
全部复制:按esc键后,先按gg,然后ggyG
全选高亮显示:按esc键后,先按gg,然后ggvG或者ggVG
单行复制:按esc键后, 然后yy
单行删除:按esc键后, 然后dd
粘贴:按esc键后, 然后p
复制到粘贴板: 全选高亮显示之后,ctrl+shift+c,
vim只能粘贴50行的问题:
在当前用户主目录编辑~/.vimrc(如果不存在,新建这个文件),添加一行
:set viminfo='1000,<500
至于为什么要输入输入’1000,这个其实不重要,最主要的是输入<500,它是设置寄存器保存的行数的。即最大值为 500