参考网上已有方案的实践。中间遇到的问题我表示了出来。
运行环境基于centos7。服务器环境依赖Nginx,Supervisor。具体操作如下。
一、先预装相和dotcore无关的工具组件
yum install -y lrzsz
yum install -y upzip zip
yum install -y telnet
yum install -y wget
二、asp.net core网站。我用vs2017选asp.net core 模板在创建一个默认站点
部署站点
如果出现这些信息则表示成功运行。
这时候我们是无法访问到这个页面的,这时候我们需要部署一个web容器来进行转发。
3.安装nginx
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl--devel
yum -y install pcre-devel openssl openssl-devel
yum -y install gcc gcc-c++ autoconf automake make -- c编译器没装也需要装
wget http://nginx.org/download/nginx-1.7.4.tar.gz ##没取到,浏览器下载后rz到linux
tar -zxvf nginx-1.7.4.tar.gz
cd nginx-1.7.4
./configure
make
make install
(Q1. 此处遇到问题,yum无法安装gcc,直到下班后尝试,应该是公司网络限制规则影响
Q2.对nginx进行了研究,通过还原nginx初始化配置,使其能访问默认站点确认nginx无误。再次配置访问无误
)
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf #启动nginx
ps -aux|grep nginx
把nginx设置为开机启动,见 http://www.cnblogs.com/joseph_zheng/articles/7080277.html
4.安装配置守护进程(Supervisor),重启系统后能自动启动
# 安装Supervisor
yum install python-setuptools
easy_install supervisor
#配置Supervisor
mkdir /etc/supervisor
echo_supervisord_conf > /etc/supervisor/supervisord.conf #生成supervisord.conf 默认文件
修改supervisord.conf文件,将文件最后的内容修改如下:
这里遇到过问题,编辑时不小心将i插入了配置文件,导致无法启动supervisor,下次注意。
创建目录conf.d,在目录下创建文件 Webapp1.conf 文件内容如下
################
[program:WebApplication1]
command=dotnet WebApplication1.dll
directory=/root/dotnet-demo/mysite
autorestart=true
stderr_logfile=/var/log/WebApp1.err.log
stdout_logfile=/var/log/WebApp1.out.log
environment=ASPNETCORE_ENVIRONMENT=Production
user=root
stopsignal=INT
################
运行supervisord并查看进程是否生效。
supervisord -c /etc/supervisor/supervisord.conf
ps -ef | grep TestDotNetCoreWeb
配置文件如有修改,使用命令supervisorctl reload重新加载。
另一篇文章 supervisord介绍 - 安装 、启动&关闭、添加开机自启动服务.note
把supervisor配置到启动项中。
-------------------------------------------------------------------------------------------------------
特别要注意的地方,要先启动Supervisor再启动nginx,不然会报端口被占用。