一、前言

 

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

  1、简单记录一下Linux CentOS 7中安装与配置Tengine的详细步骤。

  2、简单比较一下Tengine 和Nginx

 

二、开始安装环境 

  Tengine是淘宝发起的web服务器项目,简单的讲就是对nginx进行了二次开发并提供了更丰富的功能,

官网地址:http://tengine.taobao.org/,目前最新的稳定版本是2.3.0,我这里也用的这个版本,

1、查看环境

[root@centos ~]# cat /etc/redhat-release

CentOS Linux release 7.6.1810 (Core) 

 

2、安装之前(这一步可以跳过,直接使用命令安装,比较方便) 

下载pcre-8.39.tar.gz【依赖】 

下载zlib-1.2.11.tar.gz【依赖】 

下载openssl-1.0.1h.tar.gz【依赖】 

下载jemalloc-3.6.0.tar.bz2  【依赖】 

下载 tengine-2.3.0.tar.gz  【http://tengine.taobao.org/download/tengine-2.3.0.tar.gz】

[root@centos ~]# cd /usr/local/src/

[root@centos ~]# wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.39.tar.gz 

[root@centos ~]# wget http://zlib.net/zlib-1.2.11.tar.gz 

[root@centos ~]# wget http://www.openssl.org/source/openssl-1.0.1h.tar.gz

[root@centos ~]# wget http://www.canonware.com/download/jemalloc/jemalloc-3.6.0.tar.bz2

[root@centos ~]# wget http://tengine.taobao.org/download/tengine-2.3.0.tar.gz

 

3、安装之前

在安装之前首先检查一下是否已安装nginx的一些模块依赖的lib库,诸如g++、gcc、pcre-devel、openssl-devel和zlib-devel。所以下面这些命令最好挨个跑一遍,已安装的会提示不用安装,未安装或需要更新的则会执行安装及更新

yum install gcc-c++

yum -y install pcre pcre-devel

yum -y install zlib zlib-devel

yum -y install openssl openssl-devel

    执行这个是有用的,执行完成之后在安装  

在linux CentOS上部署netcore项目(Tengine、netCore、Centos、mysql) 随笔 第1张

 

3、安装Tengine,安装主程序在这里

cd /usr/local/src/

wget http://tengine.taobao.org/download/tengine-2.3.0.tar.gz

在linux CentOS上部署netcore项目(Tengine、netCore、Centos、mysql) 随笔 第2张

   解压安装包文件

 tar -zxvf tengine-2.3.0.tar.gz

在linux CentOS上部署netcore项目(Tengine、netCore、Centos、mysql) 随笔 第3张

  安装Tengine-2.3.0 

 cd /usr/local/src/tengine-2.3.0/src/core

  不指定目录方式,全部默认安装,以后可以修改

 ./configure 

在linux CentOS上部署netcore项目(Tengine、netCore、Centos、mysql) 随笔 第4张

  生成和编译

$ make

$ sudo make install

 

 

4、配置

  编辑文件

vim /lib/systemd/system/nginx.service 

   输入内容

 [Unit]

Description=The nginx HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

 设置权限

chmod 745 nginx.service

 

#启动nginx服务

systemctl start nginx.service

 

#设置开机自启动

systemctl enable nginx.service

#停止开机自启动

systemctl disable nginx.service

#查看服务当前状态

systemctl status nginx.service

#重新启动服务

systemctl restart nginx.service

#查看所有已启动的服务

systemctl list-units --type=service

 

 

二、安装Net Core部署NetCore

官方推荐安装方式:

    Install .NET Core SDK on Linux CentOS / Oracle - x64

sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm
sudo yum update
sudo yum install dotnet-sdk-2.2

###

 

wget -c https://download.visualstudio.microsoft.com/download/pr/80e1d007-d6f0-402f-b047-779464dd989b/9ae5e2df9aa166b720bdb92d19977044/dotnet-sdk-2.2.101-linux-x64.tar.gz
mkdir -p $HOME/dotnet && tar zxf dotnet-sdk-2.2.101-linux-x64.tar.gz -C $HOME/dotnet
export DOTNET_ROOT=$HOME/dotnet
export PATH=$PATH:$HOME/dotnet
dotnet --version #可以看到版本号意味着安装成功
 

三、部署Net Core web 程序 

1、利用ftp服务器上传web文件,我这里传到目录是:/home/sopftpuser/ftp/upload/Tools

   详细文章看:https://www.cnblogs.com/sopcce/p/10743241.html

2、配置nginx

vi /usr/local/nginx/conf/nginx.conf

   具体编辑内容

server {

  listen 80;

  server_name webname;

  location / {

     proxy_pass http:localhost:5000;

  }

} 

 3、这样一个简单的nginx反向代理服务器就配置完毕了,重启启动

 systemctl restart nginx.service

 4、运行web应用

cd /home/sopftpuser/ftp/upload/Tools

dotnet Sop.Tools.dll  #运行web应用,这里就是web程序运行的类库

 以下备注 ,到这里我可以访问我自己设置的网站了:http://39.98.237.120/

5、配置web应用为后台服务

 vi /usr/lib/systemd/system/webname.service

 

 

[Unit]
Description=Webname Web App

[Service]
WorkingDirectory=/home/sopftpuser/ftp/upload/Tools
Environment=ASPNETCORE_ENVIRONMENT=Production
ExecStart=/usr/bin/dotnet NetCore.fw.web.dll
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

 

 systemctl enable webname #开机自启
 systemctl start webname

      在linux CentOS上部署netcore项目(Tengine、netCore、Centos、mysql) 随笔 第5张

 

 

 四、总结

到这里就结束了

不足:

对CentOS命令不熟悉

对Tengine和Nginx不太熟悉

这里下次查询资料在做补充。

 

 

 

 

更新日期:2019-04-22

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄