Go to my github

开发日志:Kylin麒麟操作系统部署ASP.NET CORE

需求场景:

     我需要部署的项目是在Windows上开发的,目标框架为.net core 6.0 因此我们需要先在kylin上部署项目运行所需要的环境。

借助百度词条,先看看Kylin是什么:

 服务器资源:

 查看系统版本  cat /etc/kylin-release    cat /proc/version   

 需要用到的工具:

  1. SSH远程链接工具     https://mobaxterm.mobatek.net/download.html
  2. 7-zipWindows下打包tar.gz文件 https://7-zip.org/download.html  

 部署步骤和方法:

在Kylin操作系统中安装ASP.NET Core,您可以遵循以下步骤:

    1. 打开终端(SSH远程链接工具)
    2. 添加Microsoft包存储库:rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
    3. 安装.NET Core SDK:yum install dotnet-sdk-6.0
    4. 安装ASP.NET Core 运行时:yum install aspnetcore-runtime-6.0
    5. 上传编译好的DotNet项目文件(*.tar.gz)上传目录 /root/website/  也就是当前目录
  1. 解压tar -zxvf  *.tar.gz 项目文件到指定目录
  2. 运行项目 dotnet *.dll
  3. 访问项目,这时需要一直开着终端才能访问所以需要
  4. 安装Supervisor守护进程
  5. 创建 Systemd 服务文件
  6. 完成

以上步骤会在Kylin操作系统上安装.NET Core SDK和ASP.NET Core 运行时以及项目部署到Kylin服务器上。请确保替换步骤4中的URL,使之指向最新的.NET Core版本。

Supervisor安装步骤:

  1. 输入命令:yum install python-setuptools
  2. 输入命令:easy_install supervisor
  3. 配置Supervisor:mkdir /etc/supervisor  执行  echo_supervisord_conf > /etc/supervisor/supervisord.conf 生成配置文件
    1. 修改配置文件 /etc/supervisor/supervisord.conf文件内容在文件结尾[include]节点处把;

    2. files = relative/directory/*.ini  改为  files = conf.d/*.conf

    3. 在/etc/supervisor/下创建conf.d文件夹
    4. 在 /etc/supervisor/ conf.d/ 路径下新增.conf文件 内容如下:

    5. [program: fxxyrsapp]
      command=dotnet Web.dll
      directory=/home/ftproot/website/fxxyrs
      autorestart=true
      autostart=true
      stderr_logfile=/home/ftproot/website/hdj_fxxyrs/fxxyrsapp.err.log
      stdout_logfile=/home/ftproot/website/hdj_fxxyrs/fxxyrsapp.out.log
      environment=ASPNETCORE_ENVIRONMENT=Production
      user=root
      stopsignal=INT
      startsecs=1
    6. 重启命令:supervisorctl -c /etc/supervisor/supervisord.conf reload 或者 supervisorctl reload

    7. 运行supervisord,查看是否生效,执行以下命令: 
    8. supervisord -c /etc/supervisor/supervisord.conf
    9. 查看进程:ps -ef | grep fxxyrsapp
    10. 配置supervisor UI 管理台
    11. 编辑 supervisord.conf 文件,加入/修改 [inet_http_server]

      [inet_http_server]      
      port=*:9001                  
      username=user            
      password=123              

      接下来访问ip:9001,就可以看到正在运行的进程了

       

创建 Systemd 服务文件:

# 创建 Systemd 服务文件
sudo bash -c 'cat << EOF > /etc/systemd/system/fxxyrspc.service
[Unit]
Description=jx fxxy rs pc

[Service]
WorkingDirectory=/home/ftproot/hdjftp/website/fxxyrspc
ExecStart=/home/ftproot/hdjftp/website/fxxyrs/pc/fxxyrspc.dll

# 程序崩溃后自动启动
Restart=always
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=fxxyrspc.service
# 用户角色
User=root
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
# The default value is 90 seconds for most distributions.
TimeoutStopSec=90

[Install]
WantedBy=multi-user.target
EOF'

# 启动并设置服务开机自启
sudo systemctl daemon-reload
sudo systemctl start fxxyrspc.service
sudo systemctl enable fxxyrspc.service
sudo systemctl status fxxyrspc.service
journalctl -u fxxyrspc.service
journalctl -fu fxxyrspc.service

常用命令:

复制文件
mv /home/ftproot/5.tar.gz /var/opt/mssql/data
解压
sudo tar -zxvf /home/ftproot/5.tar.gz -C  /var/opt/mssql/data
删除文件夹
rm -rf  /home/ftproot/hdjftp/website/fxxyrs/pc
创建文件夹:
mkdir  /home/ftproot/hdjftp/website/fxxyrs/pc
授权
chmod -R 777 /home/ftproot/hdjftp/website/pc
进入目录 cd /home/ftproot/hdjftp/website/pc/
查询进程
ps -ef | grep HDJ
删除进程
kill ID

安装vsftpd:  https://blog.csdn.net/weixin_38642722/article/details/146607235

 

使用7-zip打包tar.gz文件:

  1.  右键-7.ZIP-添加压缩包压缩格式选择"tar"确定
  2. 选择打包好的“tar”右键-7.ZIP-添加压缩包压缩格式选择"gzip"确定就打包*.tar.gz格式的文件了

 

A connection was successfully established with the server, but then an error occurred during the pre-login handshake. (provider: SSL Provider, error: 31 - Encryption(ssl/tls) handshake failed)
https://github.com/dotnet/SqlClient/issues/2252

解决方法:

vim /etc/pki/tls/openssl.cnf
#在oid_section=new_oids下增加
openssl_conf = default_conf
#在文件末尾增加
[default_conf]
ssl_conf = ssl_sect
[ssl_sect]
system_default = system_default_sect
[system_default_sect]
MinProtocol = TLSv1
CipherString = DEFAULT@SECLEVEL=1

错误信息:

 解决方法:

 

 

https://learn.microsoft.com/zh-cn/troubleshoot/developer/webapps/aspnetcore/practice-troubleshoot-linux/1-3-install-dotnet-core-linux

 

Nginx代理:https://blog.csdn.net/u011575168/article/details/120284495

1:安装:安装Nginx‌: 如果你还没有安装Nginx,可以通过以下命令安装

   sudo apt-get install -y nginx

2:配置:配置Nginx‌: 编辑Nginx配置文件,通常位于/etc/nginx/sites-available/default。添加以下配置以代理到你的ASP.NET Core应用

server {
listen 80; # 或其他端口号,取决于你的需求。确保与防火墙设置相匹配。
server_name yourdomain.com; # 替换为你的域名或IP地址。
location / {
proxy_pass http://localhost:5000; # 根据你的ASP.NET Core应用监听的端口修改。确保防火墙开放相应的端口。如果使用了反向代理,这里的端口通常是5000。如果直接运行在5000端口,则无需此配置。否则,你需要确保防火墙允许访问此端口。例如,使用UFW可以运行:sudo ufw allow 5000/tcp。如果使用了反向代理(如Nginx),则ASP.NET Core通常监听80端口(HTTP)或443端口(HTTPS)。在这种情况下,你应该将proxy_pass指向反向代理服务器的地址和端口。例如,如果你的Nginx配置为将请求代理到localhost的5001端口,则应为proxy_pass http://localhost:5001;。确保ASP.NET Core应用监听正确的端口,并通过反向代理转发请求到此端口。如果使用了反向代理(如Nginx),则ASP.NET Core通常监听80端口(HTTP)或443端口(HTTPS)。

 

posted @ 2024-04-25 16:46  峡谷少爷  阅读(1724)  评论(0)    收藏  举报