.net core 部署麒麟系统+达梦 Supervisor进程守护 redis

离线模式下进行的部署。
其中Supervisor原文参考:python3下离线安装Supervisor

.Net Core SDK

原来的系统是.net core 3.1框架,下面是.net core 3.1为例:

在这里插入图片描述

安装

# 创建目录
mkdir -p /usr/local/dotnet
# 上传下载的文件到上传的目录下
# 解压安装包
tar zxf dotnet-sdk-3.1.426-linux-arm64.tar.gz -C /usr/local/dotnet
# 添加dotnet快捷方式
ln -s /usr/local/dotnet/dotnet /usr/local/bin
# 查看安装情况
dotnet –info

Supervisor

涉及文件:meld3-2.0.1 setuptools-68.2.2 supervisor-4.2.5
官网相关文件下载地址
百度网盘下载 提取码:zh5w

安装步骤

  1. 下载并下载setuptools。
#下载最新安装包,并上传。
#解压
tar -xvf setuptools-68.2.2.tar.gz
#安装
cd setuptools-68.2.2/
python3 setup.py install
  1. 下载并安装meld3
#下载安装包,并上传
#解压
tar -zxvf meld3-2.0.1.tar.gz
#安装
sudo python setup.py install
#更新一下配置
ldconfig
  1. 下载并安装supervisor。
#下载最新安装包,并上传。
#解压
tar -xvf supervisor-4.2.5.tar.gz
#安装
cd supervisor-4.2.5/
python3 setup.py install
  1. 使用echo_supervisord_conf生成配置文件
# 创建目录
mkdir /etc/supervisor
# echo_supervisor_conf程序(用来生成初始配置文件,文件名可以自定义)来初始化一个配置文件
echo_supervisord_conf > /etc/supervisor/supervisord.conf
# 修改supervisor.conf配置信息,目的是为了创建一个supervisor进程配置文件加载目录,让supervisor自动加载该目录下.ini后缀的文件作为服务配置
[include]
files = /etc/supervisor/conf.d/*.ini
  1. 开启supervisord服务并查看是否正常
supervisord -c /etc/supervisor/supervisord.conf
ps -fe | grep supervisord
  1. 修改配置文件
vim /etc/supervisor/supervisord.conf

在这里插入图片描述
原文中还有一些对其临时目录内容的修改,避免临时文件夹被删除。

  1. 添加项目配置文件
mkdir -p /etc/supervisor/conf.d
vim /etc/supervisor/conf.d/自己的项目名.conf

然后根据自己项目情况添加配置文件;日志文件路径不存在的,需要自己先创建,否则下面开启服务时会报错。

# 1 SmartCityApi
[program:xxxx]
# 2 程序在该路径下运行
directory=/home/wwwroot/xxxx/
#运行用户root
user = root
# 3 运行
command=dotnet xxxx.dll
#在supervisord 启动的时候也自动启动
autostart = true
#启动 1 秒后没有异常退出,就当作已经正常启动了
startsecs = 0
# 停止等待时间
stopwaitsecs=10
#程序异常退出后自动重启
autorestart = true
#启动失败自动重试次数,默认是 3
startretries = 100
# 4 日志文件若文件夹不存在需新建
stdout_logfile=/var/xxx/xxxx.log
# 5 错误日志
stderr_logfile=/var/xxx/xxxx.log
#设置环境变量
environment=ASPNETCORE_ENVIRONMENT=Development

supervisorctl update更新一下;

  1. 其他相关命令
#查看进程状态
supervisorctl status
#查看程序日志打印信息
supervisorctl tail -f xxxx
#启动
#停止
#更新

开机自动启动

Nginx(麒麟)

无法访问互联网的情况下安装;

安装&启动

  • 上传文件到服务器;
  • 依次执行:
# 安装依赖
yum -y install zlib zlib-devel pcre-devel openssl openssl-devel
# 解压缩
tar -zxvf nginx-1.25.3.tar.gz
# 进入解压后的目录
cd nginx-1.25.3/
# 执行配置
./configure
# 编译安装(默认安装在/usr/local/nginx)
make
make install
  • 安装完成后,使用whereis nginx即可查看安装路径。

  • 进入nginx安装目录;
    在这里插入图片描述

  • 执行 ./nginx , ps aux | grep nginx 查看启动状态。
    在这里插入图片描述

反向代理

  • 跳转配置文件所在目录。
    在这里插入图片描述
  • 修改配置文件。
    在这里插入图片描述
  • 重新加载配置文件 ./nginx -s reload

开机自启动

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
修改/etc/rc.d/rc.local文件 :vi /etc/rc.d/rc.local 添加 /usr/local/nginx/sbin/nginx . 然后保存退出 :qw
在这里插入图片描述

Nginx(Windows)

  • 下载完成后,解压缩,运行cmd,使用命令进行操作,不要直接双击nginx.exe。
  • 使用命令到达nginx的加压缩后的目录。
cd C:\Users\Administrator\Downloads\nginx-1.25.3 
  • 启动nginx服务
 start nginx
  • 查看任务进程是否存在,dos或者任务详情中均可查看。没有查看解压目录下的日志文件。
tasklist /fi "imagename eq nginx.exe"

未正常启动查看启动目录下的日志文件。
常见的错误
(1)端口号被占用
(2)nginx文件夹路径含中文

  • 修改配置文件,根据本地需要更改配置文件;
    修改完成后保存,使用以下命令nginx -t -c /Users/Administrator/Downloads/nginx-1.25.3/conf/nginx.conf检查一下配置文件是否正确,后面是nginx.conf文件的路径,successful就说明正确了;
    重启nginx nginx -s reload

  • 配置说明

#user  nobody;

#==工作进程数,一般设置为cpu核心数
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {

    #==最大连接数,一般设置为cpu*2048
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    
    #==客户端链接超时时间
    keepalive_timeout  65;

    #gzip  on;

    #当配置多个server节点时,默认server names的缓存区大小就不够了,需要手动设置大一点
    server_names_hash_bucket_size 512;

    #server表示虚拟主机可以理解为一个站点,可以配置多个server节点搭建多个站点
    #每一个请求进来确定使用哪个server由server_name确定
    server {
        #站点监听端口
        listen       8800;
        #站点访问域名
        server_name  localhost;
        
        #编码格式,避免url参数乱码
        charset utf-8;

        #access_log  logs/host.access.log  main;

        #location用来匹配同一域名下多个URI的访问规则
        #比如动态资源如何跳转,静态资源如何跳转等
        #location后面跟着的/代表匹配规则
        location / {
            #站点根目录,可以是相对路径,也可以使绝对路径
            root   html;
            #默认主页
            index  index.html index.htm;
            
            #转发后端站点地址,一般用于做软负载,轮询后端服务器
            #proxy_pass http://10.11.12.237:8080;

            #拒绝请求,返回403,一般用于某些目录禁止访问
            #deny all;
            
            #允许请求
            #allow all;
            
            add_header 'Access-Control-Allow-Origin' '*';
            add_header 'Access-Control-Allow-Credentials' 'true';
            add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
            add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
            #重新定义或者添加发往后端服务器的请求头
            #给请求头中添加客户请求主机名
            proxy_set_header Host $host;
            #给请求头中添加客户端IP
            proxy_set_header X-Real-IP $remote_addr;
            #将$remote_addr变量值添加在客户端“X-Forwarded-For”请求头的后面,并以逗号分隔。 如果客户端请求未携带“X-Forwarded-For”请求头,$proxy_add_x_forwarded_for变量值将与$remote_addr变量相同  
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            #给请求头中添加客户端的Cookie
            proxy_set_header Cookie $http_cookie;
            #将使用代理服务器的主域名和端口号来替换。如果端口是80,可以不加。
            proxy_redirect off;
            
            #浏览器对 Cookie 有很多限制,如果 Cookie 的 Domain 部分与当前页面的 Domain 不匹配就无法写入。
            #所以如果请求 A 域名,服务器 proxy_pass 到 B 域名,然后 B 服务器输出 Domian=B 的 Cookie,
            #前端的页面依然停留在 A 域名上,于是浏览器就无法将 Cookie 写入。
            
           #不仅是域名,浏览器对 Path 也有限制。我们经常会 proxy_pass 到目标服务器的某个 Path 下,
            #不把这个 Path 暴露给浏览器。这时候如果目标服务器的 Cookie 写死了 Path 也会出现 Cookie 无法写入的问题。
            
            #设置“Set-Cookie”响应头中的domain属性的替换文本,其值可以为一个字符串、正则表达式的模式或一个引用的变量
            #转发后端服务器如果需要Cookie则需要将cookie domain也进行转换,否则前端域名与后端域名不一致cookie就会无法存取
        #配置规则:proxy_cookie_domain serverDomain(后端服务器域) nginxDomain(nginx服务器域)
            proxy_cookie_domain localhost .testcaigou800.com;
            
            #取消当前配置级别的所有proxy_cookie_domain指令
            #proxy_cookie_domain off;
            #与后端服务器建立连接的超时时间。一般不可能大于75秒;
            proxy_connect_timeout 30;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }
    
  #当需要对同一端口监听多个域名时,使用如下配置,端口相同域名不同,server_name也可以使用正则进行配置
  #但要注意server过多需要手动扩大server_names_hash_bucket_size缓存区大小
  server {
    listen 80;
    server_name www.abc.com;
    charset utf-8;
    location / {
      proxy_pass http://localhost:10001;
    }
  }
  server {
    listen 80;
    server_name aaa.abc.com;
    charset utf-8;
    location / {
      proxy_pass http://localhost:20002;
    }
  }
}

Redis

离线安装

  • 下载redis: https://redis.io/download/#redis-downloads
  • 解压并安装
 #解压安装包
 tar -zxvf redis-7.2.3.tar.gz
 #make
 cd redis-7.2.3
 make
 #指定目录安装
 mkdir -p /usr/local/redis
 make PREFIX=/usr/local/redis install

通常情况下:
​ 库的默认路径为 ${PREFIX}/lib${PREFIX64} ,可通过make LIBDIR=dir install指定
​ 可执行文件的默认路径为${PREFIX}/bin,可通过make BINDIR=dir install指定

  • 复制配置文件到/usr/local/redis/bin目录;
cp /home/redis/redis-7.2.3/redis.conf /usr/local/redis/bin/
  • 配置环境变量
export PATH=/bin:/usr/bin:$PATH:/usr/local/redis/bin
  • 启动Redis
cd /usr/local/redis/bin
./redis-server redis.conf
#后台自启
nohup ./redis-server redis.conf 2>1& 
  • 设置redis访问权限
#修改配置文件
cd /usr/local/redis/bin
vim redis.conf

在这里插入图片描述
在这里插入图片描述

  • 基本用法
#认证连接redis-server
redis-cli -a password     
quit
#连接redis-server
redis-cli       
#进行认证                          
auth password     
#设置key-value           
set key01 value01    
quit
#获取设置的key值
redis-cli -a password get key01  
quit
#连接到redis-server指定的数据库
[root@vdevops ~]# redis-cli -a password -n 1    
select 2
quit

MySql 迁移达梦数据库(DM8)

数据迁移

  • 数据类型映射

根据自己的需要,做类型映射;

  • 配置数据源 (mysql-connector-java-5.1.25-bin.jar)

使用默认驱动时若遇到错误时,使用指定驱动,根据mysql版本下载对应的驱动文件。

  • 根据工具界面要求一步步操作,一直到最后完成数据迁移;

根据需要在数据类型映射中增加需要的数据类型映射,设置映射后在迁移选项中需求默认数据类型映射。

  • 迁移工具结构比较,产生添加/修改sql脚本;

达梦8以上版本支持;

DM&EF反向工程

Scaffold-DbContext
-Connection “Server=localhost; User Id=YOURUSER; PWD=YOURPWD;PORT=5236;schema=XSCHEMA;”
-Provider Pomelo.EntityFrameworkCore.Dm
-OutputDir Models
-Context DMDbConetxt

IP HTTPS证书忽略

  • 19
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值