NET MVC接口服务如何运行在容器中
有些公司内部存在一些NET项目,而公司服务器后期都换成了Linux,若单纯为这一个项目占用一台Windows服务器显得极其浪费,因此需要将NET项目嵌入到Linux服务器中,为了后期方便迁移和运维最好是Docker容器中运行。
新的.net core都已经支持docker,手头有一些原来开发的asp.net旧项目,用的asp.net mvc开发的,跑在.net formwork 4.6上。
我们的web项目要想运行,需要有一个像IIS一种的服务器组件,在这里有两层意思:
1.Net接口服务运行在Linux系统上 2.Net接口服务打包成镜像运行在Docker容器中
Net接口服务运行在Linux系统上
在linux里我们一般使用jexus来实现这个功能,用docker镜像的话应该有mono还要有jexus的基础镜像集成,也可以使用现成的镜像azraelrabbit/monupw。
Mono包含了一个C#语言的编译器,一个CLR的运行时和一组类库,并且实现了ADO.NET和ASP.NET,能够使的开发人员在Linux下用C#开发程序。
Jexus即Jexus Web Server,简称JWS是在linux平台上的一款ASP.NET WEB服务器,Jexus并非全部由mono的.NET组件构成,非常巧妙的大量采用了Linux/Unix本身的优秀特性,从代码层面保证了Jexus的性能优势,同时Jexus的框架特征也为 高性能提供了基础保证。
需要注意的是Mono需要配置GDI+兼容API的库Libgdiplus。
yum -y install gcc gcc-c++ bison pkgconfig glib2-devel gettext make libpng-devel libjpeg-devel libtiff-devel libexif-devel giflib-devel libX11-devel freetype-devel fontconfig-devel cairo-devel
备注:可能电脑已经安装了这些文件,可用rpm -qa libexif*命令查看,但是这里为了确保万无一失,直接全部执行。
如何安装Mono和Jexus请参考其他园友写的比较仔细的教程。
部署ASP.NET MVC项目
jexus安装的路径下/usr/jexus下有一个siteconf文件夹,这里面的每一个文件都 是一个网站的配置文件,每一个配置文件就代表一个网站,在(/usr/jexus/siteconf/)中,就已经有一个默认的网站配置文件,文件名 为:"default";你可以修改这个配置文件,也可以将这个配置文件赋值并修改为一个新的站点,更改端口、发布文件虚拟根路径。
将编译的文件上传至此目录。
重新启动Jexus就可以通过ip端口访问,还要注意端口是否被防火墙拦截,需要放开或关闭防火墙。
注意: 桌面的net程序是无法通过此方式使用的,会异常。 Linux下是区分大小写的。
Docker部署asp.net mvc站点
用Docker部署net程序相对容易得多,首先需要Docker环境,这个不用说,再拉取已经内建了mono 和jexus 服务器的 docker镜像
docker pull azraelrabbit/monupw
运行一个端点,启动对应的服务端口22: sshd, 80: jexus,ssh工具连接主机的 2022 端口,即可连接到这个已启动的容器内,2080主机端口为映射的站点端口。
docker run --name cmsnet -d -p 2022:22 -p 2080:80 -v /mydata:/data azraelrabbit/monupw
将你的mvc工程或asp.net工程复制到 /mydata路径下. 并在ssh到容器里用sudo 重启一下jws . 即可访问这个容器内的站点了,或者重启下整个容器也可以。
相关文章
- ElasticSearch IK 分词器快速上手
- 国际域名注册多少钱一年
- 飞天加速计划
- 顶级域名一年多少钱
- SpringCloud Alibaba Nacos自定义登录用户名和密码
- 美国洛杉矶E5-2670物理服务器租用32G内存512G固态硬盘50M带宽100G防御4IP仅999元
- top域名注册价格多少钱
- 阿里云关爱大学生 ‘’个人飞天计划-高校学生在家实践‘’
- ltd域名续费一年多少钱
- ECS使用体验 ____飞天加速计划对我的帮助
- com域名申请费是多少
- .top域名续费多少钱
- 域名注册后如何实名审核
- 怎样选择虚拟主机系统?
- Docker 安装 fastdfs,后台实现文件上传
- 云服务器ip是独立的吗
- 当设计模式遇上 Hooks
- 云服务器不备案就不能用吗
- Linux 克隆 ubuntu 解决重复ip 问题
- 不备案云服务器可以上线吗