.netcore部署centos
前言:最近公司有个项目用 .netcore开发的项目,然后闲的没事就研究如果发布到Linux系统上
需要安装的插件以及支撑架构
1.dotnetSDK
2.jexus
Jexus 是Linux平台上 的一款免费的ASP.NET WEB服务器。它是 Linux、Unix、FreeBSD等非Windows系统架设 ASP.NET WEB 服务器的核心程序,具备反向代理、入侵检测等重要功能。拥有IIS和其它Web服务器所不具备的高度的安全性
3.supervisord
supervisord 是用Python实现的一款非常实用的进程管理工具,在批量服务化管理时特别有效。可以将非Daemon的应用转为Daemon程序。
安装dotnetSDK
执行命令
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.
安装对应的 dotnet运行时,这次开发用到的是 2.0.6,
参考地址:
https://www.microsoft.com/net/download/linux-package-manager/centos/runtime-2.0.6
执行命令
sudo yum install dotnet-runtime-2.0.
传输项目到指定的目录下
Windows系统下传输文件夹到指定centos服务器上,也可以通过其他方式传输
pscp -r E:\WebSite\admin1.lottery.com root@192.168.0.55:/dotnet/webAPP/
创造发布站点完毕之后,验证web项目是否可运行,执行命令
dotnet /dotnet/webAPP/Lottery.WEB.dll
然后根据开启的端口访问站点(注意:记得开启端口,防止不可访问)
开发的端口在代码的规定好的
Program.cs文件中
public static void Main(string[] args)
{
BuildWebHost(args).Run(); } public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.UseUrls("http://*:5001")
.Build();
}
安装Jexus
执行命令
curl https://jexus.org/release/x64/install.sh|sh cd /usr/jexus/siteconf cp default lottery #lottery是配置名称,不同网站名称不同 vim lottery
修改的内容参考:
port=80 root=/ /dotnet/webAPP/admin1.lottery.com/ hosts=*,admin2.lottery.com #OR your.com,*.your.com # addr=0.0.0.0 # CheckQuery=false NoLog=true AppHost={CmdLine=/dotnet/webAPP/admin1.lottery.com/Lottery.WEB.dll;AppRoot=/dotnet/webAPP/admin1.lottery.com;Port=5001}
重启读取配置文件
sh /usr/jexus/jws restart
重启读取配置文件之后,做好host文件映射即可通过域名方式访问该站点
Centos上设置jexus开机自启动
参考地址:http://www.bubuko.com/infodetail-1295747.html
cd /etc/init.d vim jws
按i编辑模式,粘贴下面内容
#!/bin/bash
#chkconfig:
#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 ;;
esac
exit $RETVAL
添加权限以及添加服务
chmod jws chkconfig --add jws
安装supervisord
参考地址:https://www.cnblogs.com/hobinly/p/7382038.html
yum install python-setuptools easy_install supervisor
配置supervisor
在etc下创建目录,并赋权限
mkdir -m -p /etc/supervisor
在目录“ /etc/supervisor”下创建配置文件
echo_supervisord_conf > /etc/supervisor/supervisord.conf
修改配置文件
vim /etc/supervisor/supervisord.conf
在文件末尾添加,注意首尾需无空格,需顶格
[include] files=/etc/supervisor/conf.d/*.conf
在目录“/etc/supervisor”下创建dotnet core 进程配置文件存放目录“conf.d”
mkdir -m /etc/supervisor/conf.d
创建进程配置文件
vim /etc/supervisor/conf.d/lottery.conf
"lottery"可以为dotnet core 入口dll文件名字 ,插入内容,注意首尾需无空格,需顶格:
[program:Lottery.WEB] command=/bin/bash -c "dotnet Lottery.WEB.dll" directory=/dotnet/webAPP/admin1.lottery.com/ stderr_logfile=/var/log/Lottery.error.log stdout_logfile=/var/log/Lottery.stdout.log environment=ASPNETCORE_ENVIRONMENT=Production user=root stopsignal=INT autostart=true autorestart=true startsecs=
[program:Lottery.WEB] ;显示名称
command=/bin/bash -c "dotnet MyDotNetName.dll" ;运行命令,启动dotnet进程
directory=/usr/PublishOutput/ ;MyDotNetName目录
stderr_logfile=/var/log/Lottery.error.log ;错误日志文件
stdout_logfile=/var/log/Lottery.stdout.log ;日志文件
environment=ASPNETCORE_ENVIRONMENT=Production ;进程环境变量
user=root ;进程执行用户
autostart=true ;自动启动 autorestart=true ;是否自动重启
startsecs=1 ;自动重启间隔时间
创建supervisor 自启动服务
vim /etc/systemd/system/supervisor.service
编辑内容:
[Unit] Description=supervisor [Service] Type=forking ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf ExecStop=/usr/bin/supervisorctl shutdown ExecReload=/usr/bin/supervisorctl reload KillMode=process Restart=on-failure RestartSec=42s [Install] WantedBy=multi-user.target
使配置生效
systemctl daemon-reload
设置服务开机启动,即设置enable
systemctl enable supervisor.service
启动服务
systemctl start supervisor.service
使配置生效
systemctl daemon-reload
设置服务开机启动,即设置enable
systemctl enable supervisor.service
启动服务
systemctl start supervisor.service
验证dotnet进程是否启动
使用命令“ps -ef | grep dotnet”查看dotnet 是否运行
[root@cli ~]# ps -ef | grep dotnet root : pts/ :: grep --color=auto dotnet root : ? :: dotnet Lottery.WEB.dll
supervisor远程管理
使用命令“vim /etc/supervisor/supervisord.conf”修改配置文件,如下设置
;[inet_http_server] ; inet (TCP) server disabled by default
;port=127.0.0.1:9001 ; (ip_address:port specifier, *:port for all iface)
;username=user ; (default is no username (open server))
;password=123 ; (default is no password (open server))
;以下内容开启http服务[inet_http_server]
port=192.168.1.71: ;ip 加端口 username=admin ;登陆账号,可以不设 password= ;登陆账户,可以不设
也可以设置成
[inet_http_server]
;port=127.0.0.1: ;ip 加端口
port=
username=root ;登陆账号,可以不设
password= ;登陆账户,可以不设
重启服务,就可以访问了
注意防火墙是否对端口9001例外
图片验证码报错的话安装
解决:
yum install libgdiplus-devel
注意:
yum install libgdiplus 后,在centos7 下,程序并不能运行成功还是报错,查看libgdiplus安装情况
rpm -qa |grep libgdiplus
rpm -ql libgdiplus-2.10-9.el7.x86_64
在/usr/lib64下缺少libgdiplus.so文件
Centos7 需要通过安装libgdiplus-devel来解决
注意
Dotnet程序在运行当中,重复覆盖包,并不能直接覆盖到,所以需要重启 dotnet,如果使用了supervisord,则需要重启supervisord(目前本人没有找到其他更好的方法)
systemctl restart supervisor.service
Dotnet程序在运行当中,重复覆盖包,并不能直接覆盖到,所以需要重启 dotnet项目的进程
进入supervisor的管理界面
点击Restart进行该进程重启
或者使用这个命令重启
supervisorctl -c /etc/supervisor/supervisord.conf restart Lottery.WEB
.netcore部署centos的更多相关文章
- .NET框架 - NETCORE部署IIS
.NET框架 - NETCORE部署IIS 1. 发布NETCORE项目. 2. 发布IIS 添加 网站 修改对应的程序池 为 ”无托管代码“. 3. 浏览网站. IIS 需提前安装好 .netcor ...
- 64位手机部署centos
在64位处理器的手机上部署centos会有下面的困难. 1. 没有现成的aarch64的rootfs. 2. termux没有rpm2cpio进行部署. 3. armv8*不会被centos识别为aa ...
- .netcore 部署时遇到413 Request Entity Too Large 和 413Payload Too Large 的问题
.netcore3.1 遇到一个webapi 上传大文件问题 首先,在kestrel模式调试模式下上传 会报错413, 需要在三个地方添加 1.startup中 这里设置的2g最大值 2.在progr ...
- .NetCore部署到CentOS
“天下熙熙,皆为利来:天下攘攘,皆为利往.”,越来越多的人涌入IT这个行业,使得技术发展日新月异之外,也会无情淘汰跟不上潮流的人,所以作为IT从业人员,一定要时刻关注前沿技术,免得有朝一日被拍在沙滩上 ...
- Cobbler批量部署CentOS
简介 Cobbler是一个快速网络安装linux的服务,而且在经过调整也可以支持网络安装windows.该工具使用python开发,小巧轻便(才15k行python代码),使用简单的命令即可完成PXE ...
- .NetCore部署至IIS
部署教程 操作系统要求 Windows 7 或更高版本 Windows Server 2008 R2 或更高版本 依赖的组件 Runtime & Hosting Bundle 可以选择.NET ...
- NetCore部署到Linux服务器+Supervisor的步骤及过程中踩过的坑
本文作备忘使用 服务器配置: 下面是所有操作的具体步骤: 1.安装nginx 参考 1.1 添加源:默认情况Centos7中没有Nginx源,最近Nginx官网提供了Centos的源地址. sud ...
- ASP.NET Core Docker jexus nginx部署-CentOS实践版
本文用图文的方式记录了我自己搭建centos+asp.net core + docker + jexus + nginx的整个过程,希望对有同样需求的朋友有一定的参考作用. 本文主要内容如下: cen ...
- .netcore部署Linux并结合Nginx反向代理 get started
一..NetCore网站准备与发布 首先准备好一个ASP.NET Core Web应用程序,我这里就使用新建的示例站点作为demo演示,使用dotnet publish 命令发布网站. 或者使用VS的 ...
随机推荐
- 【校招面试 之 C/C++】第31题 C++ 11新特性(二)之nullptr关键字
1. 引入nullptr的原因 引入nullptr的原因,这个要从NULL说起.对于C和C++程序员来说,一定不会对NULL感到陌生.但是C和C++中的NULL却不等价.NULL表示指针不指向任何对象 ...
- iOS - OC - 字典快速遍历
1. [dic enumerateKeysAndObjectsUsingBlock:^(id _Nonnull key, id _Nonnull obj, BOOL * _Nonnull stop ...
- Zabbix监控PostgreSQL
目录 Zabbix监控PostgreSQL 1. 安装libzbxpgsql 2. 配置zabbix配置文件zabbix_agentd.conf 3. 创建监控用户 4. 导入监控模板 5. 主机链接 ...
- Nginx配置杂记(转)
转至:http://www.cnblogs.com/kuangke/p/5619400.html Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器,相较 ...
- PAT 1084 外观数列(20)(代码+思路+推荐测试用例)
1084 外观数列(20 分) 外观数列是指具有以下特点的整数序列: d, d1, d111, d113, d11231, d112213111, ... 它从不等于 1 的数字 d 开始,序列的第 ...
- HDU_1022
题目: As the new term comes, the Ignatius Train Station is very busy nowadays. A lot of student want t ...
- Luugu 3084 [USACO13OPEN]照片Photo
很神仙的dp...假装自己看懂了,以后回来复习复习... 设$f_{i}$表示从$1$到$i$,且$i$这个点必放的最大数量. 一个区间有两个限制条件:至少放一个,至多放一个. 因为一个区间至多要放一 ...
- How to use jQuery countdown plugin
Install We provide two installation methods: Bower bower install jquery.countdown Manual Download th ...
- debian中默认不存在sudo命令解决方法
原创 2016年09月04日 21:44:14 5664 1.使用su安装sudo $su #apt-get install sudo 1 2 2.给账户设置管理员权限 #vim /etc/sudoe ...
- part1:7-Linux网络配置
1.虚拟机(Vmware)网络配置 VMware虚拟机对于不同的网络环境提供了三种网卡工作模式: Bridged:网桥模式: 在桥接模式下,计算机A充当路由器与虚拟机之间的“桥”,虚拟机通过计算机A的 ...