• 第七节:Linux之基于Centos系统安装.Net Core环境、部署Core MVC项目、使用nginx反向代理


    一. DotNet Core环境安装

    1. 准备

    (1). 宿主机:centos 8.0

    (2). 运行时:ASP.NET Core Runtime

    PS:如果要开发 .NET 应用,请安装 SDK(包括了运行时)。

       如果只需运行应用程序,只需要安装运行时。

       如果要安装该运行时,建议安装 ASP.NET Core 运行时,因为它同时包括 .NET Core 和 ASP.NET Core 两个运行时

    2. 在线安装(推荐!)

    (说明:centos7x版本和centos8x版本安装步骤略有差异,centos7x需要将Microsoft 包签名密钥添加到受信任密钥列表,并添加 Microsoft 包存储库,centos8x不需要,下面是以centos8.0为例)

    参考微软官方文档:https://docs.microsoft.com/zh-cn/dotnet/core/install/linux-centos

    (1). 运行下面指令

    sudo dnf install aspnetcore-runtime-3.1

    如图:

    (2). 查看是否安装成功

    dotnet --info

    如图:

    (3). 补充几个其它指令

    A. 安装sdk

    sudo dnf install dotnet-sdk-3.1

    B. 只安装.Net Core Runtimes

    sudo dnf install dotnet-runtime-3.1

    C. 查看安装的运行时

    dotnet --list-runtimes

    D.查看安装的sdk

    dotnet --list-sdks

    3. 离线安装

    参考:https://www.cnblogs.com/dotnet261010/p/12169294.html     https://docs.microsoft.com/zh-cn/dotnet/core/install/linux-centos(底部)

    (1). 去微软官网下载Asp.net Core的运行时

    下载地址:https://dotnet.microsoft.com/download/dotnet-core/3.1 

    PS:这里是二进制发布包,解压修改配置即可。

    下载后的安装包为:aspnetcore-runtime-3.1.8-linux-x64.tar.gz

    (2). 将上述压缩包上传到工作目录下,新建一个dotnetcore文件夹,用于存放解压后的文件;然后进行解压缩指令。

    【mkdir dotnetcore】

    tar -zxvf aspnetcore-runtime-3.1.8-linux-x64.tar.gz -C ./dotnetcore/

    解压后文件如下:

    (3). 设置环境变量

    export DOTNET_ROOT=/root/dotnetcore
    export PATH=$PATH:/root/dotnetcore

    如图:

    (4). 查看是否安装成功

    【dotnet --info】,如下图,说明安装成功。

    注:存在一个问题,只有当前窗口有效,在另外的窗口中则不起作用了!!!!

    (5). 如何让所有窗口都有效???

     通过建立软连接的方式解决

    ln -s /root/dotnetcore/dotnet /usr/local/bin

    如下图:新的窗口也生效了。

    二. Core Mvc项目部署

    1. 制作一个Core Mvc可移植的发布包,然后上传到centos的工作目录下的coremvc1文件夹下。

     如下图:

    2. 进入发布包目录(coremvc1),运行指令进行启动

    dotnet coremvc1.dll --urls http://*:5000 

    PS:也可以在程序中通过 UseUrls 指令端口,则上述命令则不需要指定urls了

    3. 关闭防火墙

    (1). 查看防火墙状态

    service firewalld status

    如下图 ,说明防火墙是开启的。

    (2). 添加 5000端口永久开放,并且重启一下防火墙

    #添加5000端口永久开放
    sudo firewall-cmd --add-port=5000/tcp --permanent
    #重启防火墙
    firewall-cmd --reload

    如下图:

    (3). 也可以直接把防火墙关闭

    service firewalld stop 

    4. 测试

        在本机输入:http://192.168.137.201:5000/,进行访问,可以正常访问,如下图

    三. 使用Nginx反向代理

    1. 目标

     使用nginx反向代理coremvc项目,nginx为80端口,coremvc项目的端口为5000.

    2. 步骤

    (1). 启动coremvc项目,运行下面指令,由于是用nginx做反向代理,coremvc的5000端口可以不对外开放,5000端口可以不用配置防火墙允许。

    【 dotnet coremvc1.dll --urls http://*:5000 】

    (2). 修改nginx的配置文件,位于:/usr/local/nginx/conf/nginx.conf , 需要配置一个server_name和proxy_pass,如下图:

    代码分享:

      server {
            listen       80;
            server_name  ypf1;
    
            #charset koi8-r;
            #access_log  logs/host.access.log  main;
    
            location / {
                root   html;
                index  index.html index.htm;
                proxy_pass   http://localhost:5000/;
            }
    
            #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;
            }
    
            # proxy the PHP scripts to Apache listening on 127.0.0.1:80
            #
            #location ~ .php$ {
            #    proxy_pass   http://127.0.0.1;
            #}
    
            # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
            #
            #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;
            #}
    
            # deny access to .htaccess files, if Apache's document root
            # concurs with nginx's one
            #
            #location ~ /.ht {
            #    deny  all;
            #}
        }
    View Code

    (3). 启动nginx

    进入对应目录:【cd /usr/local/nginx/sbin/】

    启动nginx:【./nginx】

    如下图:

    3. 测试

      在浏览器中直接访问:http://192.168.137.201/ ,映射到coremvc页面,说明配置成功。

    4. 常见错误

    (1). nginx重启后会报下面的错误,如图:

    通过上面nginx安装时MakeFile文件中配置的错误日志,可以查看错误日志:/var/log/nginx/error.log 

    解决方案:运行下面指令

    setsebool -P httpd_can_network_connect 1

    !

    • 作       者 : Yaopengfei(姚鹏飞)
    • 博客地址 : http://www.cnblogs.com/yaopengfei/
    • 声     明1 : 如有错误,欢迎讨论,请勿谩骂^_^。
    • 声     明2 : 原创博客请在转载时保留原文链接或在文章开头加上本人博客地址,否则保留追究法律责任的权利。
     
  • 相关阅读:
    UpdateBatch到底是怎么用的?
    进度条在.net导入Excel时的应用实例
    asp.net页面触发事件panel滚动条高度不变的实现方法
    .NET中的枚举用法浅析
    .NET程序调试技巧(一):快速定位异常的一些方法
    ASP.NET实现推送文件到浏览器的方法
    微软官方SqlHelper类 数据库辅助操作类
    Asp.net中使用文本框的值动态生成控件的方法
    ASP.NET中Dictionary基本用法实例分析
    ASP.NET动态增加HTML元素的方法实例小结
  • 原文地址:https://www.cnblogs.com/yaopengfei/p/13766711.html
Copyright © 2020-2023  润新知