环境说明

系统:CentOS Linux release 7.2.1511 (Core)

相关工具:VS2017  xftp

服务器软件:.net core2.0,nginx

准备.net core应用程序

.NET Core分为两种应用类型:Portable applications(便携应用)          Self-contained application(自宿主应用)

我们选择便携应用,这样发布的项目会小一点,也是微软推荐的发布方式。

.NET Core SDK 下载地址:https://www.microsoft.com/net/download  (还需要安装server host,是否安装成功 iis模块与处理程序映射中查看)

  • 确保这份发布应用可以在windows上运行,以减少后续的问题。

服务器安装CentOS7

这个不多说了,网上好多教程。

服务器安装.net sdk for .net core

sudo yum install libunwind libicu(安装libicu依赖)curl -sSL -o dotnet.tar.gz https://go.microsoft.com/fwlink/?LinkID=809131(下载sdk压缩包,1.0) 

curl -sSL -o dotnet.tar.gz https://download.microsoft.com/download/7/3/A/73A3E4DC-F019-47D1-9951-0453676E059B/dotnet-sdk-2.0.2-linux-x64.tar.gz  (2.0)

sudo mkdir -p /opt/dotnet && sudo tar zxf dotnet.tar.gz -C /opt/dotnet(解压缩)sudo ln -s /opt/dotnet/dotnet /usr/local/bin(创建链接)

官方教程:https://www.microsoft.com/net/download/linux-package-manager/centos/sdk-current

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

如果可以执行则表明.NET Core SDK安装成功

部署.net core应用程序到服务器

使用Xftp上传到服务器,需要注意一点,配置xftp时,协议选择sftp,不要选ftp,否则会出现连不上服务器的情况。

项目上传至服务 home/WebApp

检查项目是否能够运行

命令:dotnet /home/WebApp/WebApp.dll

  

可以看到端口号是5000:Now listening on: http://localhost:5000

安装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.rpmyum install nginx

输入:systemctl start nginx 来启动nginx。

输入:systemctl enable nginx 来设置nginx的开机启动(linux宕机、重启会自动运行nginx不需要连上去输入命令)。

配置Nginx对Asp .Net Core的转发

修改 /etc/nginx/conf.d/default.conf 文件。

将文本内容替换为上图:

server {listen       80;server_name  localhost;#charset koi8-r;#access_log  /var/log/nginx/host.access.log  main;location / {root   /usr/share/nginx/html;index  index.html index.htm;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;}#error_page  404              /404.html;# redirect server error pages to the static page /50x.html#error_page   500 502 503 504  /50x.html;location = /50x.html {root   /usr/share/nginx/html;}
}

:wq 覆盖保存。

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

可能出现的问题

CentOS 7.0默认使用的是firewall作为防火墙,我参考了一些资料,改为iptables防火墙:

1.关闭firewall:
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)

2.iptables防火墙安装

#先检查是否安装了iptables
service iptables status
#安装iptables
yum install -y iptables
#升级iptables
yum update iptables
#安装iptables-services
yum install iptables-services

3.开启iptables  

#注册iptables服务
#相当于以前的chkconfig iptables on
systemctl enable iptables.service
#开启服务
systemctl start iptables.service
#查看状态
systemctl status iptables.service

4.配置iptables,开放端口,输入命令:# vi /etc/sysconfig/iptables

# Generated by iptables-save v1.4.21 on Wed Oct 18 11:53:01 2017
*mangle
:PREROUTING ACCEPT [135197:27080837]
:INPUT ACCEPT [63155:19657469]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [11793:12614289]
:POSTROUTING ACCEPT [11891:12626324]
-A POSTROUTING -o virbr0 -p udp -m udp --dport 68 -j CHECKSUM --checksum-fill
COMMIT
# Completed on Wed Oct 18 11:53:01 2017
# Generated by iptables-save v1.4.21 on Wed Oct 18 11:53:01 2017*filter
:INPUT ACCEPT [62:5588]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [29:2860]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 5000 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 5900 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 5901 -j ACCEPT    #vnc远程桌面连接
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibitedCOMMIT
# Completed on Wed Oct 18 11:53:01 2017

5.重启iptables

# systemctl restart iptables.service

后续出现的问题

配置好守护服务(supervisor)后,自己手贱,reboot了一下服务器,结果服务器再起来后,不知道是不是我重启了下nginx还是什么原因,项目跑不起来了,提示已运行,我就按网上说的kill了几个进程,kill完后,项目是起来了,可是所有静态文件加载不了css,js,后来又按网上说的,配置nginx访问js后仍不行,重装了下nginx后还不行,最后重新安装了dotnet core后问题解决了,所以感觉出现问题后,最快的方法就是重装以上软件!

后来又出过一次问题,我的数据库服务器IP地址变了,然后项目跑是能跑起来,只是涉及到连接数据的操作都挂了,我把项目更新后还是跑不起来,重启nginx、kill .net进程都不行,重装.net core还是不行,最后把supervisor停了再启动
( supervisord -c /etc/supervisor/supervisord.conf) 就好了。

卸载SDK命令sudo yum remove dotnet-sdk-*
sudo yum remove libunwind libicu
sudo yum remove /etc/yum.repos.d/dotnetdev.repo

或者

rm -rf /usr/share/dotnet​ 删除旧版cli
1、配置dotnet产品Feed
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
sudo sh -c 'echo -e "[packages-microsoft-com-prod]
name=packages-microsoft-com-prod
baseurl= https://packages.microsoft.com/yumrepos/microsoft-rhel7.3-prod
enabled=1
gpgcheck=1
gpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/dotnetdev.repo'

2、安装SDK,注意版本!!!
sudo yum update
sudo yum -y install libunwind libicu
sudo yum install dotnet-sdk-2.1.4

*****************************************end**********************************************

感谢博客园的大牛园友的无私奉献!!

参考:http://www.cnblogs.com/ants/p/5732337.html

转载于:https://www.cnblogs.com/nowar/p/7698769.html

.net core项目部署到centos7相关推荐

  1. .NET Core项目部署到linux(Centos7)

    1.开篇说明 a 上篇博客简单的说明了一下 使用.NET Core开发的一个总结(.NET Core跨平台:使用.NET Core开发一个初心源商城总括),那么这篇博客我们就在上一篇博客的基础上对其代 ...

  2. views 多个文件夹 netcore_Visual Studio 2019发布.NET Core项目部署或者独立运行的方法...

    Visual Studio 2019发布.NET Core项目部署或者独立运行的方法 Visual Studio 2019是一款专为程序开发人员设计,支持 Windows 和 Mac系统,适用范围广, ...

  3. Django项目部署在Centos7

    把Django项目部署在Centos7下 先有一个Django项目 一个员工管理系统(ems) 员工管理系统 使用VMware创建一个虚拟的Linux系统 Centos7下安装MySql5.7 详细安 ...

  4. 【.Net Core】把dotnet core 项目部署到docker

    把dotnet core 项目部署到docker Docker Dockerfile 部署到Centos8 发布 运行容器: 容器内运行命令 Docker Dockerfile # 引入镜像,低版本 ...

  5. 将 .net core 项目部署到 Linux(含配置多个项目)

    原文地址: https://www.jeremyjone.com/696/, 转载请注明. 部署这事儿,要说简单,其实很简单,尤其巨硬官方文档写的那叫一个清晰. 发布 写好的.net core项目,直 ...

  6. Django的web项目部署至Centos7服务器并配置域名访问

    配置服务器 本教程使用的本地环境为 Windows 10,服务器环境为 CentOS 7(64 位).(如果你还不知道服务器是什么的话,我简单解释一下服务器其实就是一台在其他地方运行的主机.这台主机可 ...

  7. 项目部署到centos7服务器验证码乱码

    由于业务拓展,将业务迁移到centOS7的服务器,配置完jdk和nginx之后,将服务发布到服务器上并部署启动,然后刷新页面,神奇的事情    经和开发探讨,发现下面为此为开发代码中指定的字体库.  ...

  8. Nginx+Supervisor安装部署.NET Core项目

    部署环境  OS:CentOS7  .NET Core SDK:2.2.402  安装.NET Core SDK  1.1 安装依赖yum install libunwind libicudotnet ...

  9. CentOS+Nginx+Supervisor部署ASP.NET Core项目

    2019独角兽企业重金招聘Python工程师标准>>> 对.Net Core的学习和实践,已经进行了一年多的世间,截止目前,微软已经发布.Net Core2.1,关于.NetCore ...

最新文章

  1. 十一好礼,90份新品MCU开发板免费送!
  2. Make Even(800)
  3. “高考”机器人横空出世 2017年居然要考“大学”
  4. Oracle数据库备份恢复,巡检须要关注的对象设置以及相关恢复概述
  5. Ubuntu系统全盘备份与恢复,亲自总结,实测可靠
  6. Java摇骰子比大小_还在摇骰子比大小?这几款火热的KTV喝酒游戏你值得收藏
  7. 那些从小不干活的人,不做家务,不做饭的人后来怎么样了呀?
  8. 电器缺水保护控制介绍
  9. 麦子学院-第一阶段-测试基础
  10. 新手机出现陌生女人照片,客服:大数据时代可能性有很多
  11. 英语基础-英语的动词变化
  12. 【latex】Latex文献报错 Something‘s wrong--perhaps a missing \item. \end{thebibliography}
  13. 全景图下载,全景管家高清全景图(一键下载建E、720云全景原图)
  14. Access denied for user 'root'@'localhost'. Account is locked
  15. js事件坐标大乱斗:screenX、clientX、pageX、offsetX
  16. 复杂业务下,我们为何选择Akka作为异步通信框架?
  17. flash_back介绍
  18. Windows杀死端口进程
  19. 结构体对齐导致结构体数组大小变化引发的指针越界操作问题.
  20. 2022——寒假总结

热门文章

  1. python详细安装步骤-Pycharm及python安装详细教程(图解)
  2. python能做表格吗-python可以用来做excel吗
  3. python科学计算基础教程pdf下载-Python科学计算基础教程_PDF电子书
  4. python新手项目-推荐:一个适合于Python新手的入门练手项目
  5. python第三方库安装-python的第三方库安装
  6. python教程第四版pdf下载-笨办法学python第四版
  7. python写web难受-(2017)你最不建议使用的Python Web框架?
  8. python3教程-Python3 教程
  9. 自学python需要多长时间-零基础自学python要多久?
  10. python csv读取-使用python获取csv文本的某行或某列数据的实例