这篇博客参考了以下文章:
1、http://www.cnblogs.com/ants/p/5732337.html
2、http://www.linuxidc.com/Linux/2016-11/137010.htm
大体类似,只是在发布期间遇到一些问题,做了一些记录。可能其他人遇到的问题都不尽相同,可以参考其他两篇文章。
配置:
- 服务器:centos7(hyper虚拟机)
- 相关工具:WinSCP(ftp工具),PuTTY
- 开发工具:vs2017
- 相关软件:nginx、supervisor
概述:
请注意博客发布的时间,现在是asp.net core 的1.0版本,在linux 上,微软官方推荐nginx 做web服务器,监听80端口,然后转发到asp.net core站点上,asp.net core 站点用supervisor 守护。
准备:
vs2017 新建一个空的asp.net core 项目,然后以文件系统方式发布项目,确认本地运行一切正常。
第一步: 安装centos,.NET Core SDK
- 安装centos
- 安装.NET Core SDK
- 首先安装依赖 输入命令
sudo yum install libunwind libicu
-
下载sdk 地址:https://www.microsoft.com/net/download/linux 选择centos7.1的,下载完成后通过winscp 上传到 centos上(注意上传的位置)
- 注意下载后的文件名称以及上传的目录地址。
- 创建文件夹:
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
- 首先安装依赖 输入命令
到此SDK就安装成功了!!
第二步:上传ASP.NET Core
- 用winscp将文件 上传到/home/yin/wwwroot/
- 在wwwroot文件夹下 执行:
dotnet demoweb.dll
注意吧程序集名称换成自己本地的程序集名称
-
第三步:配置nginx
- 采用源码安装方式安装Nginx
- 下载地址:https://nginx.org/download/nginx-1.12.0.tar.gz 注意下载的时候选择对应的版本号
- 执行以下命令
-
tar -zxvf nginx-1.12.0.tar.gz
cd nginx-1.12.0
./configure make sudo make install注意如果./configure 失败,大多是没有安装编译工具,执行:
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
将nginx执行路径加到path环境变量上,避免每次启动nginx 都需要在nginx目录下
-
vi ~/.bashrc
添加
export PATH="/usr/local/nginx/sbin:$PATH"
然后输入以下命令来应用:
source ~/.bashrc
修改nginx配置文件:
vi /usr/local/nginx/conf/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:
nginx -s reload
开放端口号(管理员操作):
firewall-cmd --zone=public --add-port=80/tcp --permanent systemctl restart firewalld
执行:
dotnet /home/yin/wwwroot/demoweb.dll
到这里就可以访问了^.^
第四步:安装supervisor
我们需要监听asp.net core站点的运行情况,如果发生异常需要自动重启,为了解决这个问题我们需要安装supervisor。
- 下载源码,下载地址:https://pypi.python.org/packages/7b/17/88adf8cb25f80e2bc0d18e094fcd7ab300632ea00b601cbbbb84c2419eae/supervisor-3.3.2.tar.gz
- 上传到服务器,执行命令:
tar zxvf supervisor-3.3.2.tar.gz cd supervisor-3.3.2 sudo python setup.py install
- 安装过程中可能会提示:meld3>=0.6.5的错误
- 解决办法:
wget http://dl.fedoraproject.org/pub/epel/7/x86_64/p/python-meld3-0.6.10-1.el7.x86_64.rpm sudo rpm -ivh python-meld3-0.6.10-1.el7.x86_64.rpm
配置supervisor:
mkdir /etc/supervisor echo_supervisord_conf > /etc/supervisor/supervisord.conf
修改supervisord.conf:
vi /etc/supervisor/supervisord.conf
增加如下内容:
[include] files = conf.d/*.conf
创建配置文件demoweb.conf:
mkdir conf.d vi demoweb.conf
增加如下内容:
[program:demoweb] command=dotnet demoweb.dll directory=/home/yin/wwwroot/ autorestart=true stderr_logfile=/var/log/demoweb.err.log stdout_logfile=/var/log/demoweb.out.log environment=ASPNETCORE_ENVIRONMENT=Production user=root stopsignal=INT
运行supervisor:
supervisord -c /etc/supervisor/supervisord.conf
到此大公告成!!访问地址