• 精创网络
  • 精创网络
  • 首页
  • 产品优势
  • 产品价格
  • 产品功能
  • 关于我们
  • 在线客服
  • 登录
  • DDoS防御和CC防御
  • 精创网络云防护,专注于大流量DDoS防御和CC防御。可防止SQL注入,以及XSS等网站安全漏洞的利用。
  • 免费试用
  • 新闻中心
  • 关于我们
  • 资讯动态
  • 帮助文档
  • 白名单保护
  • 常见问题
  • 政策协议
  • 帮助文档
  • 如何在Ubuntu18上部署ASP.NET Core应用
  • 来源:www.jcwlyf.com更新时间:2025-02-28
  • 随着跨平台开发的普及,ASP.NET Core作为一个开源且跨平台的Web框架,已成为开发现代Web应用的重要工具。ASP.NET Core支持在Linux、macOS、Windows等多个操作系统上运行。Ubuntu 18作为一个广泛使用的Linux发行版,也为ASP.NET Core应用的部署提供了理想的环境。本文将详细介绍如何在Ubuntu 18上部署ASP.NET Core应用,确保您的应用在Linux环境下运行稳定高效。

    一、准备工作

    在开始部署之前,需要先准备一些基础工作。确保您的Ubuntu 18系统已经安装了必要的软件包和工具。以下是安装步骤:

    1.1 安装.NET SDK和运行时

    要在Ubuntu 18上运行ASP.NET Core应用,首先需要安装.NET SDK和运行时。打开终端,执行以下命令来安装所需的软件包:

    sudo apt update
    sudo apt install -y apt-transport-https
    sudo apt update
    sudo apt install -y dotnet-sdk-3.1  # 安装 .NET Core SDK 3.1
    sudo apt install -y dotnet-runtime-3.1  # 安装 .NET Core 运行时 3.1

    安装完成后,使用以下命令检查.NET的安装是否成功:

    dotnet --version

    该命令将返回已安装的.NET版本号,确认环境已设置好。

    1.2 安装必要的依赖项

    除了.NET SDK外,还需要安装一些依赖项,如nginx、mono、libssl等。这些软件包用于支持应用的运行和Web服务器的配置。通过以下命令进行安装:

    sudo apt install -y nginx libssl-dev

    二、创建ASP.NET Core应用

    在Ubuntu系统上部署ASP.NET Core应用之前,我们需要创建一个应用。我们将使用命令行工具创建一个简单的ASP.NET Core Web API应用。

    2.1 使用命令行创建项目

    首先,创建一个新的目录用于存放ASP.NET Core应用。在终端中执行以下命令:

    mkdir MyAspNetApp
    cd MyAspNetApp
    dotnet new webapi -n MyApiApp

    该命令会创建一个名为“MyApiApp”的ASP.NET Core Web API项目。进入该目录后,可以使用编辑器查看和修改代码。

    2.2 运行应用进行本地测试

    可以使用以下命令在本地运行应用进行测试:

    cd MyApiApp
    dotnet run

    默认情况下,应用会在http://localhost:5000和https://localhost:5001上运行。可以在浏览器中访问这些地址,查看API是否能正常响应。

    三、发布ASP.NET Core应用

    在本地测试完成后,下一步是将应用发布到Ubuntu 18服务器上。在部署之前,首先需要将应用编译和发布为可执行文件。

    3.1 发布应用

    使用以下命令发布应用:

    dotnet publish -c Release -r linux-x64 --self-contained

    该命令会将应用发布为自包含的版本,包含所有必要的运行时,适合部署到Ubuntu 18等Linux环境中。发布后的文件将位于“bin/Release/netcoreapp3.1/linux-x64/publish”目录下。

    四、配置Nginx作为反向代理

    为了使ASP.NET Core应用能够在生产环境中稳定运行,我们需要使用Nginx作为反向代理服务器,将请求转发到ASP.NET Core应用。以下是配置步骤:

    4.1 安装Nginx

    首先,确保Nginx已经安装。可以使用以下命令进行安装:

    sudo apt install nginx

    4.2 配置Nginx反向代理

    编辑Nginx的配置文件,添加反向代理规则。打开Nginx配置文件进行修改:

    sudo nano /etc/nginx/sites-available/default

    在配置文件中,找到server块并修改为以下内容:

    server {
        listen 80;
        server_name example.com;  # 根据实际情况替换域名
    
        location / {
            proxy_pass http://localhost:5000;  # 将请求转发到ASP.NET Core应用
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection keep-alive;
            proxy_set_header Host $host;
            proxy_cache_bypass $http_upgrade;
        }
    }

    保存并退出文件后,重新加载Nginx配置以使更改生效:

    sudo systemctl reload nginx

    五、启动ASP.NET Core应用

    现在我们已经完成了Nginx的配置,接下来需要启动ASP.NET Core应用。使用以下命令启动应用:

    cd /path/to/publish
    sudo dotnet MyApiApp.dll

    通过此命令启动应用后,应用将通过Nginx进行访问。可以在浏览器中访问http://example.com(根据实际配置的域名),查看API是否正常工作。

    六、设置应用为系统服务

    为了确保应用在系统启动时能够自动运行,我们可以将ASP.NET Core应用配置为一个系统服务。

    6.1 创建服务文件

    在/etc/systemd/system目录下创建一个名为myapiapp.service的文件:

    sudo nano /etc/systemd/system/myapiapp.service

    将以下内容粘贴到文件中:

    [Unit]
    Description=My ASP.NET Core Application
    After=network.target
    
    [Service]
    ExecStart=/usr/bin/dotnet /path/to/publish/MyApiApp.dll
    WorkingDirectory=/path/to/publish
    Restart=always
    RestartSec=10
    SyslogIdentifier=dotnet-example
    
    [Install]
    WantedBy=multi-user.target

    保存并关闭文件后,使用以下命令重新加载systemd并启动服务:

    sudo systemctl daemon-reload
    sudo systemctl start myapiapp
    sudo systemctl enable myapiapp

    使用以下命令检查服务状态:

    sudo systemctl status myapiapp

    通过此设置,ASP.NET Core应用将自动在系统启动时启动,确保在没有人工干预的情况下,应用始终运行。

    七、监控和日志记录

    在生产环境中,监控和日志记录对于应用的稳定性至关重要。您可以使用Nginx日志和ASP.NET Core的内置日志功能来跟踪应用的状态和异常。

    7.1 配置ASP.NET Core日志

    可以在应用的Startup.cs文件中配置日志记录。在Configure方法中,使用ILogger来记录应用的日志:

    public void Configure(IApplicationBuilder app, ILogger<Startup> logger)
    {
        app.Use(async (context, next) =>
        {
            logger.LogInformation("Request Path: " + context.Request.Path);
            await next.Invoke();
        });
    }

    此外,您还可以使用Serilog、NLog等第三方库来增强日志记录功能。

    8. 总结

    在Ubuntu 18上部署ASP.NET Core应用并不复杂,只要按照上述步骤安装所需工具、配置反向代理和服务,就能够成功部署并运行您的Web应用。通过使用Nginx作为反向代理,您不仅可以提高应用的稳定性,还能够通过服务管理工具确保应用在系统启动时自动运行。希望本文能够帮助您顺利完成ASP.NET Core应用的部署。

  • 关于我们
  • 关于我们
  • 服务条款
  • 隐私政策
  • 新闻中心
  • 资讯动态
  • 帮助文档
  • 网站地图
  • 服务指南
  • 购买流程
  • 白名单保护
  • 联系我们
  • QQ咨询:189292897
  • 电话咨询:16725561188
  • 服务时间:7*24小时
  • 电子邮箱:admin@jcwlyf.com
  • 微信咨询
  • Copyright © 2025 All Rights Reserved
  • 精创网络版权所有
  • 皖ICP备2022000252号
  • 皖公网安备34072202000275号