Linux Disibutaion:CentOS 7.1

Web Server:Apache、Kestrel

1、安装.net core

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

2、新建asp.net core mvc项目

  1. #新建文件夹hwapp
  2. mkdir hwapp
  3.  
  4. #进入hwapp文件夹
  5. cd hwapp
  6.  
  7. #新建asp.net core mvc项目
  8. dotnet new -t web
  9.  
  10. #还原.net core nuget包
  11. dotnet restore

3、安装npm,gulp,bower

  1. wget https://nodejs.org/dist/v6.9.1/node-v6.9.1-linux-x64.tar.xz
  2. xz -d node-v6.9.1-linux-x64.tar.xz
  3. #安装npm
  4. sudo tar --strip-components 1 -xvf node-v* -C /usr/local
  5. #安装gulp
  6. sudo npm install gulp -g
  7. #安装bower
  8. sudo npm install bower -g

4、发布项目

  1. cd /home/$1/hwapp
  2. #发布项目
  3. dotnet publish -c Release

5、安装并配置Apache

  1. #更新
  2. sudo yum update -y
  3. #安装apache
  4. sudo yum -y install httpd mod_ssl

进入/etc/httpd/conf.d目录,添加hwapp.conf文件,并将如下内容写入文件中

  1. <VirtualHost *:80>
  2. ProxyPreserveHost On
  3. ProxyPass / http://127.0.0.1:5000/
  4. ProxyPassReverse / http://127.0.0.1:5000/
  5. ErrorLog /var/log/httpd/hwapp-error.log
  6. CustomLog /var/log/httpd/hwapp-access.log common
  7. </VirtualHost>

检查配置文件是否正确,如果看到"Syntax [OK]"则说明配置正确

  1. sudo service httpd configtest

重启Apache

  1. sudo systemctl restart httpd
  2. sudo systemctl enable httpd

按理来说,到这一步应该已经可以访问我们部署的网站了,但是在CentOS下有一个细节需要注意:SELinux的安全策略导致网站无法访问。

  1. #查看selinux状态
  2.  
  3. # SELINUX= can take one of these three values:
  4. # enforcing - SELinux security policy is enforced.
  5. # permissive - SELinux prints warnings instead of enforcing.
  6. # disabled - No SELinux policy is loaded.
  7. getenforce
  8. #这里我们需要把SELinux的值修改为disabled
  9. vi /etc/selinux/config

修改完SELinux,重启虚机

6、安装Supervisor

  1. yum install python-setuptools
  2. easy_install supervisor

配置Supervisor

  1. mkdir /etc/supervisor
  2. echo_supervisord_conf > /etc/supervisor/supervisord.conf
  3. #指定配置文件
  4. supervisord -c /etc/supervisor/supervisord.conf

指定守护的程序配置

  1. vi /etc/supervisor/supervisord.conf

在supervisord.conf最后加入

  1. [include]
  2. files=conf.d/*.conf

进入目录/usr/lib/systemd/system/,新建一个“supervisord.service”文件

  1. # dservice for systemd (CentOS 7.0+)
  2. # by ET-CS (https://github.com/ET-CS)
  3. [Unit]
  4. Description=Supervisor daemon
  5.  
  6. [Service]
  7. Type=forking
  8. ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf
  9. ExecStop=/usr/bin/supervisorctl shutdown
  10. ExecReload=/usr/bin/supervisorctl reload
  11. KillMode=process
  12. Restart=on-failure
  13. RestartSec=42s
  14.  
  15. [Install]
  16. WantedBy=multi-user.target

执行命令

  1. systemctl enable supervisord
  2. systemctl start supervisord

配置守护进程,进入目录/etc/supervisor/conf.d/,新建文件“hwapp.conf”

  1. [program:hwapp]
  2. command=/usr/local/bin/dotnet /var/hwapp/hwapp.dll --server.urls:http://*:5000
  3. directory=/var/hwapp/
  4. autostart=true
  5. autorestart=true
  6. stderr_logfile=/var/log/hwapp.err.log
  7. stdout_logfile=/var/log/hwapp.out.log
  8. environment=ASPNETCORE_ENVIRONMENT=Production
  9. user=azureuser
  10. stopsignal=INT

重新加载配置

  1. sudo supervisorctl reload
  2. sudo supervisord
  3. sudo supervisorctl

查看是否被守护进程拉起

  1. ps -ef|grep dotnet

 

部署成功

ASP.Net Core 运行在Linux(CentOS)的更多相关文章

  1. ASP.Net Core 运行在Linux(Ubuntu)

    这段时间一直在研究asp.net core部署到linux,今天终于成功了,这里分享一下我的部署过程. Linux Disibutaion:Ubuntu 14.04 Web Server:nginx. ...

  2. 在Linux安装ASP.NET Core运行时环境

    我使用的是Centos7 ,其它的Linux请参考微软文档   微软官方介绍文档:                                https://www.microsoft.com/n ...

  3. ASP.NET Core 实战:Linux 小白的 .NET Core 部署之路

    一.前言  最近一段时间自己主要的学习计划还是按照毕业后设定的计划,自己一步步的搭建一个前后端分离的 ASP.NET Core 项目,目前也还在继续学习 Vue 中,虽然中间断了很长时间,好歹还是坚持 ...

  4. .NET Core部署到linux(CentOS)最全解决方案,进阶篇(Supervisor+Nginx)

    在.NET Core部署到linux(CentOS)最全解决方案,常规篇一文,我们详细讲解了传统的.NET Core部署到Linux服务器的方法,学到了Linux在虚拟机下的安装.Xshell,Xft ...

  5. .NET Core部署到linux(CentOS)最全解决方案,高阶篇(Docker+Nginx 或 Jexus)

    在前两篇: .NET Core部署到linux(CentOS)最全解决方案,常规篇 .NET Core部署到linux(CentOS)最全解决方案,进阶篇(Supervisor+Nginx) 我们对. ...

  6. ASP.NET Core MVC 在linux上的创建及发布

    前言 ASP.NET core转眼都发布半月多了,社区最近也是非常活跃,虽然最近从事python工作,但也一直对.NET念念不忘,看过了园区大神们搭建的Asp.net core项目之后,自己也是跃跃欲 ...

  7. ASP.NET Core 运行原理剖析1:初始化WebApp模版并运行

    ASP.NET Core 运行原理剖析1:初始化WebApp模版并运行 核心框架 ASP.NET Core APP 创建与运行 总结 之前两篇文章简析.NET Core 以及与 .NET Framew ...

  8. ASP.NET Core 发布至Linux生产环境 Ubuntu 系统

    ASP.NET Core 发布至Linux生产环境 Ubuntu 系统,之前跟大家讲解了 dotnet publish 发布,而没有将整个系统串起来. 今天就跟大家综合的讲一下ASP.NET Core ...

  9. Install .NET Core SDK on Linux CentOS / Oracle x64 | .NET

    原文:Install .NET Core SDK on Linux CentOS / Oracle x64 | .NET Linux发行版  CentOS / Oracle添加dotnet产品Feed ...

随机推荐

  1. eclipse下使用tomcat启动maven项目

    最近学习使用maven,建立了一个maven项目使用eclipse下tomcat启动时报错: 严重: ContainerBase.addChild: start: org.apache.catalin ...

  2. sap 如何获取公司间采购订单或销售订单的交货状态

    在上SAP项目过程,上了SD模块的企业一般都要做一些跟公司间采购订单或销售订单的交货状态的报表,通过这些报表可以经客户的业务上提供很大的灵活性,至于如何的灵活,还是那句老话“谁用谁知道".1 ...

  3. 使用grep要注意的地方

    [maijunjin@localhost testGrep]$ ./ #没有结果 [maijunjin@localhost testGrep]$ . #没有结果 [maijunjin@localhos ...

  4. 转载Jquery中的三种$()

    1.$()可以是$(expresion),即css选择器.Xpath或html元素,也就是通过上述表达式来匹配目标元素. 比如:$("a")构造的这个对象,是用CSS选择器构建了一 ...

  5. 射频识别技术漫谈(2)——国际标准【worldsing 笔记】

    如果你只是智能卡的用户,通常可以不必关注国际标准,但作为智能卡的专业开发人员,则至少也要对相关标准有所了解.国际标准一般都是西方人制定的,原版都是英文的,而所谓中文版往往是对原版的直译,许多情况下并未 ...

  6. Jenkins 实际项目操作

    .Abstract { padding: 15px; border: dotted 2px #999; color: #999; font-family: "Microsoft Yahei& ...

  7. 设计Account 对象如下:  private long id;       private double balance;       private String password; 要求完善设计,使得该Account 对象能够自动分配id。 给定一个List 如下: &#

    package homework005; public class Account { private long id; private double balance; private String ...

  8. session和request的区别

    request 请求对象 请求中保存请求过程中需要的参数 比如另一个页面需要使用的对象编号,list,map等,请求结束,就失效了 session 会话对象 除非关闭会话(到时间通常为30分钟,或者关 ...

  9. Android设计模式系列--工厂方法模式

    工厂方法模式,往往是设计模式初学者入门的模式,的确,有人称之为最为典型最具启发效果的模式.android中用到了太多的工厂类,其中有用工厂方法模式的,当然也有很多工厂并不是使用工厂方法模式的,只是工具 ...

  10. cocos2d-x Sprite

    转自:http://codingnow.cn/cocos2d-x/795.html 精灵是游戏中十分重要的组成部分,随处可见,如:游戏背景.NPC.人物.道具等.在cocos2d-x引擎中,只要是用图 ...