在centos 7.4上使用jexus 部署 asp.net core 项目

直接用dotnet xx.dll命令是可以部署asp.net core项目的,包括https也可实现。但是用jexus有以下几个好处:

1.jexus可以守护dotnet进程

2.同一服务器,同一端口,可以配置多个网站

3.操作简单

4.通过反向代理实现负载均衡(不过jexus一般通过端口转发方式实现asp.net core)

5.检测攻击(只是asp.net+mono方式,不适用asp.net core)

用 .net core 2.0作为目标框架做了一个网站,想部署到centos 6.5上,安装.net core时因为缺少openssl-lib而失败,而安装Openssl-lib又要安装一大堆依赖,最后不得不直接在阿里云后台重新更换到centos 7.4

一.安装.net sdk

sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm
sudo yum update
sudo yum install libunwind libicu
sudo yum install dotnet-sdk-2.1.200  //如果希望安装2.1的最新版,可把后面的.200小版本号去掉

安装后运行 dotnet --version 可以查看版本号,就说明成功了     

( 2.1.3以后对应目标框架.net core 2.1,  2.1.200还是属于.net core 2.0 )2.1目标框架似乎还有bug,改成2.1后在项目中添加controller类的时候会报错,所以还是使用2.0)

二.发布并运行.net core 项目

假设我的站点名称是mysite,创建一个 var/www/mysite 文件夹

在windows上的vs 2017中  publish .net core项目,生成publish文件夹,将文件夹下的文件传到var/www/mysite

 进入该文件夹,运行 dotnet mysite.dll ,网站已经运行起来了

(注意 要进入网站目录后再运行dotnet,不要dotnet /var/www/..../mysite.dll, 否则会出问题,目前发现的是静态文件打不开,配置文件读不到)

执行  wget 127.0.0.1:5000 可以看到返回成功,说明网页已经可以本机打开了。

然而,这时候只能通过5000端口被访问,还不能通过外网访问,下面我们需要安装jexus来实现外网80端口访问

三.安装jexus

 jexus 的原理就是把80端口的请求转发给5000端口,并且守护dotnet进程。 

 安装非常简单:

    curl https://jexus.org/release/x64/install.sh|sudo sh   

    会自动把jexus安装到 usr/jexus 下,目前最新版本是5.8.3.10,从该版本开始支持.net core 2.1,

   usr/jexus/siteconf 文件夹下用vim 命令 修改default 文件,添加以下内容

  

port=80                  

root=/ /var/www/mysite/

hosts=*

AppHost={

  cmd=dotnet mysite.dll;  

  root=/var/www/mysite/

  port=0;      

}

  执行  /usr/jexus/./jws start 启动jexus服务  

  以后每次修改配置文件都要 执行 /usr/jexus/./jws restart 重启

  在阿里云的安全规则里把80端口放行

  现在在你的电脑上输入阿里云的外网ip就能打开网页了

四. 将jexus设置为开机自启

 cd /etc/init.d/         
vi jws  
按i编辑模式,粘贴下面内容  
#!/bin/bash  

#chkconfig: 2345 80 05
#description:jws  
#  

. /etc/rc.d/init.d/functions

case "$1" in

start)  

  echo "Jexus Start.."  
  /usr/jexus/jws start  
  ;;  
stop)  
  echo "Jexus Stop.."  
  /usr/jexus/jws stop  
  ;;  
restart)  
  echo "Jexus Restart"  
  /usr/jexus/jws restart  
  ;;  
status)  
  /usr/jexus/jws status  
  ;;  
*)  
  exit 1  
  ;;  
esac  
exit $RETVAL  
按ESC后,输入:wq保存文件  
把这个脚本作为“服务”加入  
chmod 766 jws  
chkconfig --add jws  

   注意:刚才加了一个mysite配置文件,设定端口为80,但是已经有一个default配置文件端口也是80,这会导致mysite起不来,要将default删除或者修改端口

至此,jexus已经在centos 7.4搭建成功。 


 

经验总结:

 1.centos 7以下系统库的版本太低,会导致安装失败。需要升级到centos 7.4

 2. jexus一旦启动后,会自动启动dotnet,无需将dotnet加入开机启动。

 3. jexus只是起到端口转发作用,核心功能还是由dotnet完成的。

关于如何配置https,开启gzip,请看另一篇  https://blog.csdn.net/soband_xiang/article/details/80757718  

猜你喜欢

转载自blog.csdn.net/soband_xiang/article/details/80365898