在linux上部署.netcore应用能够获得更好的性能。故尝试在linux上部署.netcore程序:

1、在vs2017中发布.netcore部署包,注意发布选项中配置环节设置部署模式为独立部署,目标运行时为Linux-x64,然后一路发布得到一个linux上专用的部署包,通过xftp传送至linux主机中。

2、安装好linux(centos7)上的最新的.netcore 运行时,终端中进入到部署包中 dotnet xxx.dll若能正常启动且监听5000端口则可以进行下一步了,下一步要做的就是为该.netcore进程设置一个守护者进程以保证其不挂掉,一个最简单的守护者进程可以为:

#!/bin/bash
#chkconfig: 2345 80 90
#supervisor processo
 
while true
do
    res=`netstat -nalp| grep 5000 | grep -v grep | wc -l`
    if [ $res -eq 0 ]
    then
        cd /dotnetcoreTest/ChuXiongWizGis_Linux/ && dotnet WizGisBackService.dll&
    fi
    sleep 5
done

3、保存为shell文件DotNetTest.sh,然后设置其开机自启动:

chmod +x DotNetTest.sh  #增加执行权限

chkconfig --add DotNetTest.sh    #把startTest添加到系统服务列表
chkconfig DotNetTest.sh on       #设定startTest的开关(on/off)

以上所做就保证了linux主机上有个不会挂掉的.netcore进程,但是在远程主机上访问http://ip+端口号却无法访问,故用nginx做反向代理,将主机内的5000端口号映射出去。

4、首先安装nginx,centos下安装nginx:

a、安装准备

首先由于nginx的一些模块依赖一些lib库,所以在安装nginx之前,必须先安装这些lib库,这些依赖库主要有g++、gcc、openssl-devel、pcre-devel和zlib-devel 所以执行如下命令安装

    $   yum install gcc-c++  
    $   yum install pcre pcre-devel  
    $   yum install zlib zlib-devel  
    $   yum install openssl openssl--devel  


 
b、安装Nginx

 

安装之前,最好检查一下是否已经安装有nginx

    $   find -name nginx  

如果系统已经安装了nginx,那么就先卸载

    $   yum remove nginx  

首先进入/usr/local目录

    $   cd /usr/local  

从官网下载最新版的nginx

    $   wget http://nginx.org/download/nginx-1.7.4.tar.gz  

解压nginx压缩包

    $   tar -zxvf nginx-1.7.4.tar.gz  

会产生一个nginx-1.7.4 目录,这时进入nginx-1.7.4目录

    $   cd  nginx-1.7.4  

接下来安装,使用--prefix参数指定nginx安装的目录,make、make install安装

    $   ./configure  $默认安装在/usr/local/nginx   
    $   make  
    $   make install      


如果没有报错,顺利完成后,最好看一下nginx的安装目录

    $   whereis nginx  

最后应该设置一下映射:

server{

        listen       2002;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
           # root   html;
           # index  index.html index.htm;
         proxy_pass http://localhost:5000;
         proxy_set_header X-real-ip $remote_addr;
             proxy_set_header Host $http_host;
        }
}

安装完毕后,进入安装后目录(/usr/local/nginx)便可以启动或停止它了,启动命令为:

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

停止命令为:

/usr/local/nginx/sbin/nginx -s stop

这样就完成了Nginx对.netcore api程序的反向代理功能,其结果是可以在远程主机通过映射的ip端口号访问到api。

更多推荐