NET Core站点部署到Linux服务器

.NET跨平台之旅:将QPS 100左右的ASP.NET Core站点部署到Linux服务器上

今天下午我们将生产环境中一个单台服务器 QPS(每秒请求数)在100左右的 ASP.NET Core 站点部署到了 Linux 服务器上,这是我们解决了在 .NET Core 上使用 EnyimMemcached(memcached客户端)的问题之后,.NET 跨平台之旅迈出的重要一步。这个 ASP.NET Core 站点,既用了缓存,也有数据库访问操作,是一个典型的 Web 站点,如果它能持续稳定运行,将为我们全站迁移至 ASP.NET Core + Linux 扫清障碍。

这个 ASP.NET Core 站点用的 memcached 客户端是我们在 nuget.org 上最新发布的 EnyimMemcachedCore

public void ConfigureServices(IServiceCollection services)
{
    services.AddEnyimMemcached(options => options.AddServer("memcached", 11211));
}

.NET Core 用的是最新的 .NET Core 1.0.1;以 self-contained 方式部署,用 dotnet publish 命令发布出来的文件中包含可以直接在 Linux 上运行的可执行文件,因此服务器上无需另外安装 .NET Core 运行环境,用 scp 命令将 dotnuet publish 命令生成的文件上传到部署服务器即可。

"frameworks": {
  "netcoreapp1.0.1": {
    "imports": [ "dnxcore50", "portable-net45+win8" ],
    "dependencies": {
      "Microsoft.NETCore.App": "1.0.1"
    }
  }
}

最前端用的是阿里云负载均衡,后端 2 台 Linux 服务器的配置是 1 核 CPU 与 1G 内存,Linux 发行版用的是 Ubuntu 14.04,使用 supervisor 以服务的方式运行站点。Web 服务器用的是 Kestrel,Kestrel 目前最大的问题是不支持主机名绑定,同一台服务器上的不同站点必须绑定不同的端口,这给部署带来了麻烦。数据库服务器用的是阿里云 RDS(SQL Server 2008 R2)。Memcached 缓存服务器用的是阿里云云数据库 Memcache 版。

Now listening on: http://*:8003
Application started. Press Ctrl+C to shut down.

接下来,我们将一边观察已经运行在 ASP.NET Core + Linux 上的站点的运行情况,一边将更多项目迁移至 ASP.NET Core 。

标签: .NET跨平台ASP.NET Core

时间: 2024-10-25 23:30:32

NET Core站点部署到Linux服务器的相关文章

ASP.NET Core教程:ASP.NET Core程序部署到Linux

一.前言 这篇文章我们将讲解如何将ASP.NET Core 程序部署到Linux.这里我们使用的是虚拟机里面安装的Centos7.这里的ASP.NET Core程序,以上篇文章中发布的框架依赖文件为例进行讲解. 二.安装运行时环境 1.在线安装 我们只是在Linux系统上面部署应用程序,所以只需要安装ASP.NET Core Runtime即可.在安装.NET之前,我们需要先注册Microsoft密钥和源,在终端里面执行下面的命令: sudo rpm -Uvh https://packages.

ASP.NET项目部署到Linux服务器出现服务器错误

在Linux系统中安装了Mono和Apache作为Web服务器,使用Visual Studio开发的ASP.NET Web应用或者API应用,在部署到Linux服务器后出现服务器错误,其中一个原因是由于默认的Visual Studio Web应用或API应用包含了Microsoft.CodeDom.Providers.DotNetCompilerPlatform和Microsoft.Net.Compilers两个Nuget包,通常应用不需要这两个包,可能是Mono没有完全实现导致的错误,所以只要

将本地Java程序部署到linux服务器并执行

需求:将本地Java程序部署到linux服务器并执行,首先要将本地Java程序打成jar包,然后拷贝到服务器后运行java -jar xx.jar 问题:该程序本地运行正常,服务端运行报错找不到第三方包中的类 原因:本地打jar包时有错,未能正确引入第三方包 解决:本地通过fat jar插件来打包,方法如下 在Eclipse 下 java 应用程序打包 Mainfest.mf 格式 首先保证程序在Eclipse下的正常执行,然后方法如下: ( 写在最前面 做好的Eclipse打包 还是使用插件

ASP.NET Core 网站发布到Linux服务器(转)

出处;ASP.NET Core 网站发布到Linux服务器 长期以来,使用.NET开发的应用只能运行在Windows平台上面,而目前国内蓬勃发展的互联网公司由于成本的考虑,大量使用免费的Linux平台,这就使得.NET空有一身绝技但无法得到广大的施展空间,.NET平台被认为只适合开发企业内部应用系统. 2016年6月27日,微软正式发布.NET Core 1.0.ASP.NET 1.0和Entity Framework Core 1.0,通吃 Windows.OS X和Linux三大操作系统..

使用java service wrapper将项目部署到linux服务器上

最近有需求是将java项目部署到linux服务器上作为服务端程序,最后经过测试成功.本着分享精神将总结出来的路子分享给大家,如果不明白的地方可以在下边留言,谢谢. 将java项目部署到linux服务器 1.      首先从官网下载http://wrapper.tanukisoftware.com/doc/english/download.jsp,注意下载的文件为Community列中的(PS:其他版本需要序列号) 2.      将写好的java项目打成jar包,待用 3.      将下载好

.Net Core部署在Linux服务器:Nginx反向代理+Supervisor进程守护

前言:.Net Core 程序(网站)可以部署在windows IIS ,也可以部署在Linux系统(更加推荐) 本文部署,基于.net core 2.1,服务器CentOS 7, 需要安装的服务有2个:Nginx,SuperVisor(进程守护) 命令预览: Linux: 重启:reboot Nginx: 强杀: killall -9 nginx 测试配置是否正确: nginx -t 启动: nginx SuperVisor:停止:supervisorctl shutdown 启动: supe

.NET Core项目部署到Linux(Centos7)(一)前言

目录 1.前言 2.环境和软件的准备 3.创建.Net Core API项目 4.VMware Workstation虚拟机及Centos 7安装 5.Centos 7安装.Net Core环境 6.发布.Net Core项目到Linux 7.启动和停止.Net Core项目 8.为.Net Core项目创建Supervisor进程守护监控 9.防火墙配置,允许外网或局域网访问.Net Core站点 10.总结 ASP.NET Core 是一个新的开源和跨平台的框架,用于构建如 Web 应用.物

ireport部署到Linux服务器上遇到的问题解决

ireport报表在本地Windows环境运行正常,一旦部署到Linux环境上出现了如下问题: 1.打开报表,后台直接报net.sf.jasperreports.engine.util.JRFontNotFoundException: Font '仿宋' is not available to the JVM. See the Javadoc for more details...错误. 这个问题是之前以为是Linux环境未安装相应字体导致,但在Linux上安装相应字体后,仍然报错. 最初的解决

SpringBoot部署到Linux服务器

今天来谈一下,用SpringBoot写的Demo来配置到Linux服务器. 这里,我用阿里云服务器作为实例,SpringBoot集成了SpringMvC+ mybatis 框架,用maven管理jar包(注:在配置SpringBoot的时候注意jar包的版本合理引用) 这些jar包应该可以正常跑起来的 不会出现jar包冲突的情况 这里贴上service层以及controller层. 所有配置都在本人git下  地址:https://github.com/ChoviWu/SpringBoot-Ja