因为老项目用的 ASP.NET web API 技术开发部署到 Windows 系统上, 而新项目用的是. Net Core 部署到 Ubuntu 系统中, 所以在管理切换上有些不便. 于是决定将老项目的测试服部署到 Ubuntu 中, 试试水.
一, 简述
要实现 ASP.NET 项目部署到 Linux 中, 必须要通过 Mono.Mono 就相当于 Windows 中的. Net Framework 是 Linux 中的. Net 运行时, 不但可以运行在 Linux 中也可以运行在 Windows 中.
jexus 是一款基于. NET 兼容环境, 运行于 Linux/unix 操作系统之上, 以支持 ASP.NET 为核心功能的高性能 Web 服务器. 说白了就相当于 Windows 中的 IIS.jexus 有专业版和通用版两个版本. Jexus 专业版中自带 Mono, 不需要在客户服务器安装 mono 就能正常运行的 Jexus 版本, 该版本只支持 64 位 Linux 操作系统. Jexus 通用版不带 Mono, 因此, 使用者应该首先在客户机安装 mono 和 libgdiplus. 为了避免不必要的麻烦我选择专业版进行部署.
二, 安装
2.1, 下载:
地址: http://www.linuxdot.net/down/jexus-5.1.tar.gz
2.2, 解压:
tar -zxvf jexus-5.1.tar.gz
2.3, 安装:
解压后, 就直接可以使用. 卸载的时候直接删除这个文件夹就行, 完全绿色版.
2.4, 常用命令
启动: sudo ./jws start
重启: sudo ./jws restart
停止: sudo ./jws stop
2.5, 测试
首先创建 / var/www/default 文件夹 (这个文件夹是指定的默认网站路径), 在文件夹中创建一个 Index.aspx, 写入
- <%@Page Language="C#"%>
- <%=DateTime.Now.ToString()%>
切换到 jexus 目录, 启动 jexus, 然后请求 Index 页面. 因为此 Linux 系统中只对外开放了 80 端口, 并且 80 端口已经被其他项目占用. 所以需要在 jexus 的 siteconf 文件夹中配置 default 文件中端口为 8020. 如果你的机器上没有部署过其他网站, 那就不需要配置端口, 只需要 culr localhost. 如果成功打印出时间, 则配置成功.
三, jexus 配置
jexus 的配置文件是 jws.conf, 文件指明了网站配置文件的存放位置, 日志, 证书等等. 下面为详细内容
- SiteLogDir=log #网站日志以及 Jexus 系统日志的存放位置, 必填项. 可以使用基于 jws.exe 文件的相对路径
- SiteConfigDir=siteconf #网站配置文件存放的位置, 是必填项. 可以使用绝对路径, 也可以使用基于 jws.conf 文件的相对路径
- Runtime=v4.0.30319 #设定 Jexus 工作进程运行于哪个. NET 版本
- httpd.processes=1 #工作进程的数量, 建议每 6-8 核 CPU 用一个进程, 最多可设 4 个进程
- httpd.user=www-data #工作进程以什么用户身份和对应权限工作, 默认为 root
- PHP-fcgi.set=/usr/bin/PHP-CGI,6 #如果需要 Jexus 同时充当 PHP FastCGI 服务器, 这一句就是 fast-CGI 设置, 分两个部分, 逗号前为 PHP-CGI 这个文件的路径, 逗号后是 PHP 进程数
- CertificateFile=/xxxx/xx.crt #SSL 证书路径 (如果需要使用 https 协议才填)
- CertificateKeyFile=/xxxx/xx.key #SSL 密钥文件路径 (如果需要使用 https 协议才填)
注: jws.conf 中, SiteConfigDir 和 SiteLogDir 两项是必填项.
在网站配置文件中, 此文件夹默认有一个 default 文件, 默认端口为 80, 默认网站资源路径为 / var/www/default, 上面测试例子就是用的最简单的配置.
配置时, 首先要注意如下三个规则:
1) 必须把所有网站配置文件放到 jws.conf 指定的网站配置文件夹内, 这个文件夹除了网站配置文件, 不能有其它任何文件, 因为 jexus 会认为这儿的任何一个文件都代表着一个不同的网站.
2) 每个网站有且只有一个配置文件, 配置文件的文件名就是这个网站的名称, 比如 www.mysite.cn 这个网站, 配置文件名可以写成 "mysite", 当然也可以写成其它文件名, 以便管理员容易记忆和识别, 但要特别注意: 文件名不能有空格!
3) 一个网站可以拥有任意多的域名, 不同网站不能有相同的域名, 没有域名的网站只能有一个, 这个没有域名的网站叫做 "默认网站", 而一台服务器最多只能有一个默认网站.
如果你的机器上端口有多余, 直接上传 ASP.NET 项目, 新建一个网站配置文件, 通过外网直接就可以访问了, 本来到此应该配置完了. 但是我的机器对外开放了 80 和 443 端口, 所有的项目都是通过 Nginx 分发实现, 所以上面测试的例子只能本机访问.
四, 配置 Nginx
如果你有其他域名, 直接在 Nginx 中设置如下配置, Nginx 就会将访问此域名的请求转发到对应的项目中处理.
- server {
- listen 80;
- server_name API.abc-cn.com(你的域名);
- location / {
- proxy_pass http://localhost:8060/;(本地配置的 jexus 地址)
- }
- }
由于我只有一个二级域名, 所以让 Nginx 通过请求的 URL 来区分请求, 分别转发.
来源: https://www.cnblogs.com/MicroHeart/p/10298828.html