asp.net core在Centos7环境运行配置

环境说明:

服务器系统:CentOS 7.2.1511

相关工具:Xshel、Xftp

服务器软件软件:.netcore、nginx、supervisor

准备好发布的程序

安装.NET Core SDK for CentOS7

 

打开网址:https://www.microsoft.com/net/core#linuxcentos

复制如下命令,单步执行:

sudo yum install libunwind libicu
 
curl -sSL -o dotnet.tar.gz https://go.microsoft.com/fwlink/?LinkID=835019
 
sudo mkdir -p /opt/dotnet && sudo tar zxf dotnet.tar.gz -C /opt/dotnet
 
sudo ln -s /opt/dotnet/dotnet /usr/local/bin

输入 dotnet –info 来查看是否安装成功

配置Nginx

 

下载安装Nginx,单步执行如下命令:

curl -o  nginx.rpm
http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
 
rpm -ivh nginx.rpm
 
yum install nginx
 
systemctl start nginx 来启动nginx
 
systemctl enable nginx 来设置nginx的开机启动(linux宕机、重启会自动运行nginx不需要连上去输入命令)。

配置防火墙

命令:firewall-cmd --zone=public --add-port=80/tcp --permanent(开放80端口)
 
命令:systemctl restart firewalld(重启防火墙以使配置即时生效)
 
测试nginx是否可以访问。

配置nginx对ASP.NET Core应用的转发

修改 /etc/nginx/conf.d/default.conf 文件,将文件内容替换为:

server {
    listen 80;
    location / {
        proxy_pass http://localhost:5000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection keep-alive;
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

上传至CentOS进行覆盖。

执行:nginx –s reload 使其即时生效

运行ASP.NET Core应用程序,偿试再次访问。如果访问不了是由于SELinux保护机制所导致,我们需要将nginx添加至SELinux的白名单,我们通过一些命令解决这个问题。

yum install policycoreutils-python
 
sudo cat /var/log/audit/audit.log | grep nginx | grep denied | audit2allow -M mynginx
 
sudo semodule -i mynginx.pp

再次访问应该没有问题。

配置守护服务(Supervisor)

安装Supervisor

yum install python-setuptools
 
easy_install supervisor

配置Supervisor

mkdir /etc/supervisor
 
echo_supervisord_conf > /etc/supervisor/supervisord.conf
 
修改supervisord.conf文件,将文件尾部的配置为:
 
[include]
files = conf.d/*.ini
或
[include]
files = conf.d/*.conf

配置对ASP.NET Core应用的守护,创建如下INI文件:

[program:AspNetCoreWebApi]
command=dotnet AspNetCoreWebApi.dll
directory=/root/wwwroot/
autostart=true
autorestart=true
stderr_logfile=/var/log/AspNetCoreWebApi.err.log
stdout_logfile=/var/log/AspNetCoreWebApi.out.log
environment=ASPNETCORE_ENVIRONMENT=Production
user=root
startsecs=1
stopsignal=INT

将文件拷贝至:“/etc/supervisor/conf.d/

运行supervisord,查看是否生效,命令如下:

supervisord -c /etc/supervisor/supervisord.conf

ps -ef | grep AspNetCoreWebApi

如果服务已启动,修改配置文件可用“supervisorctl reload”命令来使其生效。

配置Supervisor开机启动

新建一个“supervisord.service”文件

# dservice for systemd (CentOS 7.0+)
# by ET-CS (https://github.com/ET-CS)
[Unit]
Description=Supervisor daemon
 
[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

将文件拷贝至:“/usr/lib/systemd/system/supervisord.service”

执行命令:systemctl enable supervisord

执行命令:systemctl is-enabled supervisord #来验证是否为开机启动

使用 supervisorctl

Supervisorctl 是 supervisord 的一个命令行客户端工具,启动时需要指定与 supervisord 使用同一份配置文件,否则与 supervisord 一样按照顺序查找配置文件。

supervisorctl -c /etc/supervisord.conf

上面这个命令会进入 supervisorctl 的 shell 界面,然后可以执行不同的命令了:

> status    # 查看程序状态
> stop usercenter   # 关闭 usercenter 程序
> start usercenter  # 启动 usercenter 程序
> restart usercenter    # 重启 usercenter 程序
> reread    # 读取有更新(增加)的配置文件,不会启动新添加的程序
> update    # 重启配置文件修改过的程序
> status    # 查看程序状态

原文地址:http://blog.51cto.com/13717297/2139110

时间: 2024-10-08 10:50:26

asp.net core在Centos7环境运行配置的相关文章

如何在ASP.NET Core程序启动时运行异步任务(2)

原文:Running async tasks on app startup in ASP.NET Core (Part 2) 作者:Andrew Lock 译者:Lamond Lu 在我的上一篇博客中,我介绍了如何在ASP.NET Core应用程序启动时运行一些一次性异步任务.本篇博客将继续讨论上一篇的内容,如果你还没有读过,我建议你先读一下前一篇. 在本篇博客中,我将展示上一篇博文中提出的"在Program.cs中手动运行异步任务"的实现方法.该实现会使用一些简单的接口和类来封装应用

在 ASP.NET Core 程序启动前运行你的代码

原文:在 ASP.NET Core 程序启动前运行你的代码 一.前言# 在进行 Web 项目开发的过程中,可能会存在一些需要经常访问的静态数据,针对这种在程序运行过程中可能几乎不会发生变化的数据,我们可以尝试在程序运行前写入到缓存中,这样在系统后续使用时就可以直接从缓存中进行获取,从而减缓因为频繁读取这些静态数据造成的应用数据库服务器的巨大承载压力. 既然需要在程序运行前将静态数据写入到缓存中,毫无疑问我们需要在程序运行前执行一些自定义功能的代码,那么在本章中,我将会介绍如何在 ASP.NET

ASP.NET CORE做的网站运行在docker上(不用dockerfile文件部署)

原文:ASP.NET CORE做的网站运行在docker上(不用dockerfile文件部署) 按网上的做法用dockerfile文件是可以弄得出来的,http://www.docker.org.cn/article/119.html, 不过我想把网站文件放在外面硬盘目录,再映射进去,这样只要在硬盘目录中修改CSHTML文件后重启一下容器就行了 步骤如下: 1. vs中建立ASP.NET CORE网站,类名为coreweb1 2. 发布到c:\temp\coreweb1目录 3. 先在本地CMD

asp.net core系列 28 EF模型配置(字段,构造函数,拥有实体类型)

原文:asp.net core系列 28 EF模型配置(字段,构造函数,拥有实体类型) 一. 支持字段 EF允许读取或写入字段而不是一个属性.在使用实体类时,用面向对象的封装来限制或增强应用程序代码对数据访问的语义时,这可能很有用.无法使用数据注释配置.除了约定,还可以使用Fluent API为属性配置支持字段. 1.1 约定 public class Blog { // _<camel-cased property name> private string _url; public int

ASP.NET Core 发布 centos7 配置守护进程

ASP.NET Core应用程序发布linux在shell中运行是正常的.可一但shell关闭网站也就关闭了,所以要配置守护进程, 用的是Supervisor,本文主要记录配置的过程和过程遇到的问题 安装Supervisor 1  yum install python-setuptools 2   easy_install supervisor 配置Supervisor  3  mkdir /etc/supervisor 4  echo_supervisord_conf > /etc/super

asp.net core + angular2 的环境配置

国内整个对 asp.net core  和 angular2这些新出来的关注度不是太好.跟国外比很大差距. 我在试着去做这个整合的时候也碰到不少问题. 最后通过查阅大量资料才弄明白. 我想肯定也会有类似的人有同样的困扰,于是就录了个视频,感兴趣的可以一步一步跟着做一遍.你就明白了. 视频发布地址为: 因为电脑发热变慢的原因,原本想做成一部的,结果分了两部来完成. 这是上集. 这是下集 希望在推动 angular 2 ,ionic 2, asp.net core 这些技术上,尽我微薄之力. 视频中

Jexus 5.8.2 正式发布为Asp.Net Core进入生产环境提供平台支持

Jexus 是一款运行于 Linux 平台,以支持  ASP.NET.PHP 为特色的集高安全性和高性能为一体的 WEB 服务器和反向代理服务器.最新版 5.8.2 已经发布,有如下更新: 1,现在大部分网站已经部署HTTPS,大家对于安全越来越重视,顺应潮流新增HTTPS多证书支持,每个网站都可以配置自己独立的SSL证书,现在有2种方式支持网站部署HTTPS. A.添加全服务器使用的SSL配置:如果需要,可以添加一个ssl配置为所有没有单独配置ssl的网站提供共享,这个配置,对支持泛域名的证书

asp.net core 系列 9 环境(Development、Staging 、Production)

一.在asp.net core中使用多个环境 ASP.NET Core 配置是基于运行时环境, 使用环境变量.ASP.NET Core 在应用启动时读取环境变量ASPNETCORE_ENVIRONMENT,并将该值存储在 IHostingEnvironment.EnvironmentName 中.ASPNETCORE_ENVIRONMENT 可设置为任意值,但框架支持三个值:Development.Staging 和 Production. 如果发布项目未设置 ASPNETCORE_ENVIRO

ASP.NET Core开发-Docker部署运行

ASP.NET Core开发Docker部署,.NET Core支持Docker 部署运行.我们将ASP.NET Core 部署在Docker 上运行. 大家可能都见识过Docker ,今天我们就详细了解一下Docker的用途,以及真实的应用场景. Docker源于PaaS,PaaS的应用场景即是Docker的应用场景. Platform as a Service: 平台即服务, 是面向软件开发者的服务, 云计算平台提供硬件, OS, 编程语言, 开发库, 部署工具, 帮助软件开发者更快的开发软