Skip to content

本文以演示环境如下:

操作系统系统类型作者
CentOS7x86_64彭湃

在部署.Net6 应用程序之前,需要先安装依赖的 SDK 以及 Runtime

1. 安装 .Net6 SDK 及 ASP.NET Core 运行时

下载地址:https://dotnet.microsoft.com/zh-cn/download/dotnet/6.0

根据操作系统选择对应的SDK版本





1.1 将下载好的文件复制到指定的目录,推荐使用 WinSCP 软件连接到 Linux 服务器,这里以目录/LinuxNet 为例

① 创建安装目录

SSH
sudo mkdir /usr/share/dotnet

② 解压安装包到指定目录

SSH
sudo tar -xvf /linuxNet/dotnet-sdk-6.0.407-linux-x64.tar.gz -C /usr/share/dotnet/

③ 添加环境变量

打开 /etc/profile 文件,添加以下内容:
(依旧推荐使用 WinSCP 找到此路径下的文件并打开修改,避免出现不必要的错误)

SSH
export PATH=$PATH:/usr/share/dotnet

profile


④ 使环境变量生效

运行以下命令,使环境变量生效:

SSH
source /etc/profile

⑤ 验证安装

运行以下命令验证 .NET 6 是否安装成功:

SSH
dotnet --version

yesdotnet

如果出现以下错误,则还需要安装 [libicu]

这个错误提示是因为在运行 .NET 6 应用程序时,缺少必要的 ICU 库文件,因此 .NET 6 运行时无法启动全球化支持。
要解决这个问题,你需要安装 libicu 库文件。具体方法如下:

errordotnet

在线安装直接执行命令

SSH
sudo yum install libicu

errordotnet

离线安装则需要执行命令安装:

序号安装包
1libicu-50.2-4.el7_7.x86_64.rpm

errordotnet

2.安装 Nginx

2.1 准备阶段

(1) 查看 操作系统是否安装 gcc、gcc-c++;
(2) 从 CentOS 7 镜像中,提取依赖安装包:gcc、gcc-c++;
(3)下载 Nginx 需要依赖的离线安装包:ssl、pcre、zlib;
(4)下载 Nginx 离线安装包:nginx-1.23.4.tar.gz。

2.2 安装步骤

(1) 安装依赖:gcc、gcc-c++、ssl、pcre、zlib。
(2) 安装 Nginx;
(3)启动 Nginx(直接用默认配置启动测试即可)。

2.3 准备

1、查看 操作系统是否安装 gcc、gcc-c++ :
查看是否安装 gcc 的命令:

SSH
gcc -v

查看是否安装 gcc-c++ 的命令:

SSH
g++ -v

2、(如果已经安装 gcc ,忽略此步骤。)在 CentOS 7 的安装镜像,packages 目录,找到安装 gcc 相关的 rpm 包,并放到一个文件夹里(命名 [1.gcc]),列表如下(注意:不同版本的操作系统,对应的 rpm 版本也不同):

序号安装包
1cpp-4.8.5-44.el7.x86_64.rpm
2gcc-4.8.5-44.el7.x86_64.rpm
3glibc-2.17-317.el7.x86_64.rpm
4glibc-common-2.17-317.el7.x86_64.rpm
5glibc-devel-2.17-317.el7.x86_64.rpm
6glibc-headers-2.17-317.el7.x86_64.rpm
7kernel-headers-3.10.0-1160.el7.x86_64.rpm
8libmpc-1.0.1-3.el7.x86_64.rpm
9mpfr-3.1.1-4.el7.x86_64.rpm

1.gcc

3、(如果已经安装 gcc-c++ ,忽略此步骤。)在 CentOS 7 的安装镜像,packages 目录,找到安装 gcc-c++ 相关的 rpm 包,并放到一个文件夹里(命名 [2.gcc-c++]),列表如下(注意:不同版本的操作系统,对应的 rpm 版本也不同):

序号安装包
1gcc-c+±4.8.5-28.el7.x86_64.rpm
2libstdc+±devel-4.8.5-28.el7.x86_64.rpm

2gcc

4、下载 Nginx 需要依赖的离线安装包,放到一个文件夹里(命名 [3.Other])。
3other
5、下载 Nginx 离线安装包,放到文件夹 1、2、3 的同级目录:
nginxpk

2.4 安装

1、安装 gcc (如果已经安装 gcc ,忽略此步骤。):
进入到文件夹 [1.gcc]

SSH
cd /LinuxNet/1.gcc
SSH
rpm -Uvh *.rpm --nodeps --force

2、安装 gcc-c++ (如果已经安装 gcc-c++ ,忽略此步骤。):
进入到文件夹 [2.gcc-c++]

SSH
cd /LinuxNet/2.gcc-c++
SSH
rpm -Uvh *.rpm --nodeps --force

3、解压并安装 pcre :
进入到文件夹 [3.Other]

SSH
cd /LinuxNet/3.Other
SSH
rpm -Uvh *.rpm --nodeps --force

4、解压并安装 zlib :
进入到文件夹 3.Other

SSH
rpm -Uvh *.rpm --nodeps --force

5、解压并安装 openssl :
进入到文件夹 3.Other

SSH
tar -zxvf openssl-1.1.0e.tar.gz
cd openssl-1.1.0e/
./config
make && make install

6、解压并安装 Nginx :

SSH
tar -zxvf nginx-1.23.4.tar.gz
cd nginx-1.23.4/
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-pcre=../3/pcre-8.37 --with-zlib=../3/zlib-1.2.11 --with-openssl=../3/openssl-1.1.0e
make && make install

7、启动 Nginx(直接用默认配置启动测试即可):

SSH
cd /usr/local/nginx/sbin
./nginx

8、开放端口:
默认防火墙应该都是开启的,因此需要开放端口。
查看端口:

SSH
firewall-cmd --zone=public --list-ports

开放端口:

SSH
firewall-cmd --zone=public --add-port=80/tcp --permanent

重启防火墙:

SSH
systemctl restart firewalld

9、测试:
浏览器打开,输入 IP 地址即可,默认使用 80 端口。
10、查看 Nginx 进程:

SSH
ps –ef|grep nginx

11、停止 Nginx:

SSH
./nginx -s stop

正式部署我们的应用程序池

将发布后的代码复制到指定的目录,我们以文件夹[Net_DM]为例

webApp

使用命令进入/Net_DM/Portal 下

SSH
cd /Net_DM/Portal

执行启动应用程序的命令,以启动 Portal 并指定端口号 20001 为例

SSH
dotnet Portal.dll --urls http://10.10.0.191:20001

如图启动成功


根据应用程序池配置 Nginx

找到 Nginx 的目录

SSH
whereis nginx

Nginx目录

如图 Nginx 目录为“/usr/local/nginx”
使用 WinSCP 进入到此目录,打开 conf 文件夹下的 nginx.conf 文件进行编辑
直接复制粘贴以下配置进行覆盖

cnof

#user  nobody;
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 {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    client_max_body_size 10m;

    server {
        listen       20000;
        server_name  10.10.0.191;

        location    / {
        rewrite ^(.*)$ /Portal/Main/Index permanent;
        }

        location    ~/Portal/ {
        proxy_pass  http://10.10.0.191:20001;
        }

        location    ~/CommonWebResource/ {
        proxy_pass  http://10.10.0.191:20001;
        }

        location    ~/MvcConfig/ {
        proxy_pass  http://10.10.0.191:20002;
        }

        location    ~/Base/ {
        proxy_pass  http://10.10.0.191:20003;
        }
    }
}

nginx.conf

配置保存成功后请重启 Nginx

SSH
cd /usr/local/nginx/sbin    //进入Nginx的sbin目录
./nginx -s reload           //重启Nginx命令

最后启动 Nginx 监听的主站点测试搭建是否成功

登录页登录成功

补充内容:Linux 部署 FileStore 需要注意的事项

1.在 app.json 中需要设置“HostUri”,填写主站点的 IP 与端口号,利用 Nginx 进行端口转发。
20230414009

2.配置 Nginx
20230414009
此处的示例表示 FileStore 启动的端口指定为 20004,当系统页面请求接口地址为 http://10.10.1.100:20000/FileStore/AAA/BBB 时,Nginx 会自动转发到 http://10.10.1.100:20004 下的接口。
由于新版 FileStore 为独立的 WebAPI 接口和解决方案,未增加路由地址固定的前缀,需要这样配置。