因为老项目用的Asp.Net Web API技术开发部署到Window系统上,而新项目用的是.Net Core部署到Ubuntu系统中,所以在管理切换上有些不便。于是决定将老项目的测试服部署到Ubuntu中,试试水。

一、简述

  要实现Asp.Net项目部署到Linux中,必须要通过Mono。Mono就相当于Window中的.Net Framework 是Linux中的.Net 运行时,不但可以运行在Linux中也可以运行在Window中。

  jexus是一款基于.NET兼容环境,运行于Linux/unix操作系统之上,以支持ASP.NET为核心功能的高性能WEB服务器。说白了就相当于Window中的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

Asp.Net项目的部署到Linux中(Linux + Jexus+Nginx )相关推荐

  1. 如何在IDEA中创建web项目并且部署到Tomcat中

    如何在IDEA中创建web项目并且部署到Tomcat中 步骤1:File->New Project, 步骤2:选择Project SDK为1.7 -> Next -> Finish( ...

  2. ASP .Net Core系统部署到SUSE 16 Linux Enterprise Server 12 SP2 64 具体方案

    .Net Core 部署到 SUSE 16 Linux Enterprise Server 12 SP2 64 位中的步骤 1.安装工具 1.apache 2..Net Core(dotnet-sdk ...

  3. ASP.NET项目发布部署到locallhost“本地“IIS服务器

    Part-one:将ASP.NET项目发布到本地IIS 工具\原料 vs2019 windows 10 一.将ASP.NET项目发布到本地 1.选中解决方案,点击鼠标"右键"-&g ...

  4. myeclipse导项目_Myeclipse或eclipse导入项目并部署到tomcat中运行

    (不是我们的作品的用户,也可以联系上面QQ提供有偿人工指导服务)在导入项目之前首先要下载相关软件并安装里面都有安装视频和导入视频(建议先看一遍视频,知道大概需要做那些工作,然后不再看视频,直接按这个操 ...

  5. idea 启动tomcat 工程_如何在IDEA中创建web项目并且部署到Tomcat中

    步骤1:File->New Project, 步骤2:选择Project SDK为1.7 -> Next -> Finish(JDK)我自己的是1.7(这里的project,跟ecl ...

  6. vue项目打包部署在windows或linux服务器上

    最近写了一个前后端分离的项目,前端用的是vue,因此记录一下将该项目部署到服务器的整个过程. 1.首先,在控制台输入npm run build命令(或者npm run build:prod).该命令用 ...

  7. vue项目如何部署到Tomcat中

    1,假设你要访问的项目名称为'hms' 2,在Tomcat的webapps下创建hms文件夹, 3,配置config/index.js文件,设置assetsPublicPath: '/hms/' (解 ...

  8. Vue项目打包部署到服务器(Linux)

    一.打包(build) npm run build / yarn build 打包完成后项目路径会多出一个dist文件夹 到这里本地的打包完成了 然后到服务器 二.服务器配置(nginx) **注:如 ...

  9. Linux中的软件 Nginx的部署

最新文章

  1. 书------编程(理论方面)
  2. 有逼格的产品经理的工作台长啥样?
  3. boost::mp11::mp_count_if相关用法的测试程序
  4. 阿里云OSS搭建移动应用直传服务的.Net C#示例
  5. mysql 数据迁移_MySQL海量数据迁移
  6. 如何让body背景图自适应浏览器窗口大小
  7. Maven Helper 安装使用(jar 包管理工具)
  8. Jmeter设置代理,抓包之app请求
  9. 【读书笔记0101】Beginning linux programming-3rd
  10. TypeError: 'str' object is not callable
  11. JAVA + LR实现apache流媒体的性能测试
  12. fork 与 vfork
  13. PHPExcel存放多个sheet报错:Invalid character found in sheet title
  14. 5.MSDN的下载和使用
  15. 3D打印软件推荐|常用3D打印软件有哪些?
  16. struts2通配符使用
  17. 推荐七个值得关注的公众号
  18. java 僵尸进程_神奇的Java僵尸(defunct)进程问题排查过程
  19. 三星手机上,setOnEditorActionListener软键盘监听回车无效,解决方案
  20. html播放ppt插件,lightslider-支持移动触摸的轻量级jQuery幻灯片插件

热门文章

  1. Linux 内核 5.4 将于 11月24 日 发布,Linux 5.4-rc8 已可用于公测
  2. Linus Torvalds 不担心微软将控制 Linux
  3. matlab外部调用lingo,讲讲官方的例子,MATLAB调用Lingo
  4. mysql long类型_MySQL数据类型笔记
  5. url没有参数名怎么直接带参数_用30行Python爬虫带你看PLMM(划掉,喵星人)
  6. ionic滚动条返回顶部
  7. 百度编辑器回显js报错Uncaught SyntaxError: Invalid or unexpected token
  8. log4j记录日志到sqlserver数据库
  9. linux登录交换机备份脚本,如何从Linux上备份和恢复许多Cisco路由器和交换机的配置?...
  10. ir指令、立即数的作用_ARM指令中使用立即数详解