您的位置:首页 > 运维架构 > Linux

ASP.NET Core 程序发布到Linux(Centos7)爬坑实战

2017-03-13 07:08 871 查看

 前言

  前阶段弄了个Linux系统想倒腾倒腾.NET Core,结果看了下网上的资料,大部分都是过期的,走了不少弯路,不过还好,今下午总算捣鼓出来了。Linux命令太多了,唉。血的教训:安装一定要看官网的流程。

开始

  首先,我们找到官网教程,安装.NET Core 环境。地址:https://www.microsoft.com/net/core#linuxcentos
  正如教程中所说,安装之前先删除以前的版本。我的删除方法就是手动删相应的文件夹。然后按照教程一步一步来就OK了。当然不排除你在实战过程中会遇到各种各样的麻烦,多搜,网上还是有方案的。
sudo yum install libunwind libicu
curl -sSL -o dotnet.tar.gz https://go.microsoft.com/fwlink/?linkid=843449sudo mkdir -p /opt/dotnet && sudo tar zxf dotnet.tar.gz -C /opt/dotnet
sudo ln -s /opt/dotnet/dotnet /usr/local/bin

  上述过程如果顺利走完的话,就是没啥问题了,环境就可以了。现在我们随便新建一个ASP.NET Core程序。也不用编写代码,打开相应的程序目录,我的如下:
  


  这里呢,虽然发布方法是一样的,但是我用的是git将代码克隆到服务器,然后进行发布的。
  首先,定位到相应目录:
  cd /root/project/LayIM.NETCoreClient/LayIM.NETCoreClient ---定位到web项目下
  然后restore
  dotnet restore
  然后publish
  dotnet publish
  发布成功之后,会生成bin/Debug/netcoreapp1.0/publish 文件夹,然后定位到该文件夹,执行:
  dotnet LayIM.NETCoreClient.dll --改成你的web项目dll
  执行完成之后如下:
  


  虽然,localhost可以访问了,但是在外网访问还是不可以的,我这里的原因是80,5000端口没有开放。开放即可。centos7中开放端口方式如下:
  firewall-cmd --zone=public --add-port=80/tcp --permanent
      firewall-cmd --zone=public --add-port=5000/tcp --permanent
  然后重启firewall
  最后,发现还是不能访问。(我也不知道为啥),所以我也没思考直接安装了ngnix。 
  sudo yum install nginx
  sudo service nginx start
  改一下配置文件,etc/nginx/nginx.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;
   }
}

  然后重启
  nginx -s reload
  见证奇迹的时候到啦。
  


 

总结

  成功是成功了,不过还是手动发布的。下一步打算看看jenkins,利用它配合github完成自动更新,打包发布的功能。就到这里吧。虽然写的不多,但是动手的过程中,真真是碰到了各种奇葩问题,还是自己对Linux不熟悉啊。不过成果出来,还是很高兴的。下班喽~~ 
.Net Core 落地实践 开源项目(DotNetLive)团队招募啦,Git地址:https://github.com/dotnetlive

原文地址:http://www.cnblogs.com/panzi/p/6527085.html

.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注



赞赏
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: