zoukankan      html  css  js  c++  java
  • 在 Centos7 用Jexus服务器 运行.Net Core 只需几部

    1.安装 .Net SDK 不需要按照 .net core runtime,sdk 依赖于运行时会自动安装


    第一步 添加dotnet源

    复制代码
    sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm

    第二步 安装 .Net Core
    可能由于网络原因,下载要耐心等待一段时间,下载完成后执行下面命令。

    sudo yum update
    sudo yum install dotnet-sdk-2.1

    (注意:centos6下gcc版本会提示过低,安装失败。解决方案:1.安装centos7(简单方便,帮瓦工之类的推荐);2.更新编译gcc(请自行搜索解决))

    第三步 创建 Hello World测试程序

    1 dotnet new console -o demo
    2 cd demo
    3 dotnet run

    2.写一个ASP.NET Core应用(官网链接)

    ## 创建 razor web应用

    1 cd /home
    2 ///在当前目录下创建一个Web应用
    3 dotnet new razor -o aspnetcoreapp
    4 /// 运行应用程序
    5 cd aspnetcoreapp
    6 dotnet run

    (ps:可能会Warn:“Unable to bind to http://localhost:5000 on the IPv6 loopback interface: 'Error -99 EADDRNOTAVAIL address not available'”, 具体参考 https://github.com/aspnet/KestrelHttpServer/issues/2117。验证完后,退出当前应用,继续下面的内容。)

    我们的Web应用程序默认运行在5000端口,通常我们对外提供的Web都在80,443端口。Windows上我会使用IIS来宿主ASP.NET Core,在Linux下可以用Nginx,Apache,Jexus 等,[微软的文档都有详细说明

    ## 安装 Jexus

    上面我们已经完成.NET Core环境的安装,通常我们在Linux部署ASP.NET Core应用,按照微软的官方文档,我们通常需要Nginx 搭配 Systemd, Nginx并没有接管Kestrel 进程,我们需要维护2个进程,增加了复杂度。如果你把asp.net core部署于windows上,我们可以用IIS来接管Kestrel进程,我们在Linux上也可以用Jexus来达到IIS一样的体验。

    直接安装独立版的Jexus,独立版的Jexus自带Mono,使用的是Mono的稳定版本4.8。安装 Jexus 直接使用一下命令即可(需要在root身份下执行):

    安装独立版Jexus

    curl https://jexus.org/release/x64/install.sh|sh
    安装成功后会提示:OK, Jexus has been installed in /usr/jexus.

    ## 配置Jexus运行asp.net core

    把asp.net core 应用部署到Jexus

    mkdir -p /var/www/aspnetcore
    cd /var/dotnet/aspnetcoreapp/
    dotnet publish -o /var/www/aspnetcore

    然后使用下面的命令测试发布过后的程序是否运行正常

    dotnet /var/www/aspnetcore/aspnetcoreapp.dl


    ## 配置jexus 网站:

    /// 1、切换到Jexus配置文件目录
    cd /usr/jexus/siteconf
    /// 2、复制默认的配置文件为aspnetcore
    cp default aspnetcore
    vi aspnetcore
    复制代码
    ######################
    # Web Site: aspnetcore
    ########################################
    port=80
    root=/ /var/www/aspnetcore
    hosts= * #OR your.com,*.your.com
    
    AppHost={CmdLine=dotnet /var/www/aspnetcore/aspnetcoreapp.dll;AppRoot=/var/www/aspnetcore/;Port=0}
    复制代码

    配置的重点就在于AppHost中,需要注意的是在AppHost中的port(端口号)不代表Jexus对外服务的port(端口号),而是指要转发的 Asp.Net Core应用程序的端口号,如果在程序中使用了UsrUrls自定义端口则使用UsrUrls中填写的端口(不建议使用UsrUrls自定义端口),在没有使用UsrUrls自定义端口的情况下端口号设置为 0,Jexus会在运行时与Asp.Net Core进行"协商"具体使用的端口号,避免多个应用分配,端口的麻烦和冲突的风险。 简单来说就是会将外部的请求转发到这个端口,由这个端口对应的Asp.Net Core应用程序对请求进行处理。

    复制代码
    /// 由于我们的实验机子上上面的站点没有设置主机头,我们要把默认的default删除了
    rm -rf /usr/jexus/siteconf/default
    
    /// 如果已启动 Jexus:
    sh /usr/jexus/jws restart
    
    /// 如果未启动 Jexus:
    sh /usr/jexus/jws start
    复制代码
  • 相关阅读:
    [转载]详解网络传输中的三张表,MAC地址表、ARP缓存表以及路由表
    网络诊断小结
    Java代理模式示例程序
    [转载]Java中继承、装饰者模式和代理模式的区别
    [转载]JDK、SDK、J2EE、J2SE、J2ME的区别
    Java Web-JSTL
    [转载]Linux 命令详解:./configure、make、make install 命令
    jmeter之beanshell断言实例
    Appium左右、上下滑动(Java)
    【Maven】如何使用pom.xml引入自定义jar包
  • 原文地址:https://www.cnblogs.com/zhyj/p/9668774.html
Copyright © 2011-2022 走看看