咸阳网站建设制作,做网站怎么租个空间,吉林长春火车站官网,二级域名查询前言 本文主要讲解如何一步步将ASP.NET Core网站发布到Linux服务器#xff0c;文中会讲解具体步骤及需要避免的各种问题。 目录 一、环境介绍 二、创建及发布ASP.NET Core网站项目 三、服务器软件安装#xff08;.NET Core SDK#xff09; 四、在服务器上部署ASP.NET Core网…前言 本文主要讲解如何一步步将ASP.NET Core网站发布到Linux服务器文中会讲解具体步骤及需要避免的各种问题。 目录 一、环境介绍 二、创建及发布ASP.NET Core网站项目 三、服务器软件安装.NET Core SDK 四、在服务器上部署ASP.NET Core网站项目 五、服务器端配置Nginx 六、配置服务器端的守护进程Supervisor 七、设置守护程序为开机自启 环境介绍 本机所需开发工具: vs2017、XShell 、FileZilla不限定可使用其他上传工具 服务器系统及所需软件CentOS7、.Netcore、Nginx、Supervisor、Policycoreutils-python 创建及发布ASP.NET Core网站项目 打开vs2017选择 文件-新建-项目选择ASP.NET Core Web应用程序(.NET Core)在ASP.NET Core 1.1 模板处选择 Web应用程序 此时ASP.NET Core 网站项目已建立完成直接F5运行可以在浏览器中看到如下页面 回到vs2017,右键项目-发布选择文件夹文件夹名称更改为MyWebCore可以不更改默认名为PulishOutput默认路径为bin\Release点击发布后可以在发布时填写的文件夹下找到发布的文件 ASP.NET Core 网站发布完成进行下一步 服务器软件安装.NET Core SDK 通过XShell登录Linux服务 执行下列命令安装.NET Core SDK(微软官方教程地址 https://www.microsoft.com/net/core#linuxcentos) sudo yum install libunwind libicu curl -SSL -o dotnet.tar.gz https://go.microsoft.com/fwlink/?linkid843449sudo mkdir -p /opt/dotnet sudo tar zxf dotnet.tar.gz -c /opt/dotnetsudo ln -s /opt/dotnet/dotnet /usr/local/bin 执行下列命名返回版本号即表示.NET Core SDK已经安装成功 dotnet -–version .NET Core SDK安装完成进行下一步 在服务器上部署ASP.NET Core网站项目 找到本地发布好的ASP.NET Core项目(bin\Release\MyWebCore),使用FileZilla可以使用其他上传工具将MyWebCore文件夹整个上传至服务器具体上传到什么位置可以自定义此处使用/usr/myweb/文件夹 确保文件都成功上传之后就可以进行在Linux服务器的部署了 执行下列命令部署ASP.NET Core网站 cd /usr/myweb/MyWebCoredotnet MyWebCore.dll 出现如下信息即表示网址已部署成功 注:ASP.NET Core 默认端口为5000可以在项目中通过配置自定义端口此处不做过多介绍 此时是无法访问到这个页面的需要部署一个web容器来进行转发即需要为Linux服务器配置Nginx ASP.NET Core网站部署完成进行下一步 服务器端配置Nginx 执行下列命令安装Nginx curl -o nginx.rpm http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpmrpm -ivh nginx.rpmyum install nginx 成功安装Nginx之后继续执行下列命令 systemctl start nginx //启动Nginx systemctl enable nginx //将Nginx设置为开机自启 执行下列命令配置防火墙 firewall-cmd --zonepublic --add-port80/tcp --permanent //开放80端口systemctl restart firewalld //重启防火墙使配置生效 此时在浏览器输入服务器IP地址测试Nginx是否可以访问 Nginx可以正常访问接下来开始配置Nginx对我们所部署的ASP.NET Core应用的转发 找到Nginx配置文件nginx.conf我的是在/ect/nginx/目录下)下载到本地并将其server{}中的内容进行如下修改建议先备份 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.conf回传至服务器进行覆盖 执行下列命令使修改后的文件生效 nginx -s reload 执行下列命令启动ASP.NET Core网站 cd /usr/myweb/MyWebCoredotnet MyWebCore.dll 浏览器输入网址进行访问 如果出现502错误执行下列命令将Nginx添加至白名单然后再重启启动ASP.NET Core yum install policycoreutils-pythonsudo cat /var/log/audit/audit.log | grep nginx | grep denied | audit2allow -M mynginxsudo semodule -i mynginx.pp Nginx配置完成进行下一步 配置服务器端的守护进程Supervisor 为避免Shell退出后仍然可以继续访问网站我们需要守护进程Supervisor来监控ASP.NET Core网站以保证其长久健康的运行 执行下列命令安装Supervisor yum install python-setuptoolseasy_install supervisor 执行下列命令配置Supervisor mkdir /etc/supervisor //此处也可以使用上传工具手动创建文件夹 echo_supervisord_conf /etc/supervisor/supervisord.confmkdir /etc/supervisor/conf.d 修改supervisord.conf对文件最后部分的内容进行修改 //原内容
;[include]
;files relative/dictory/*.ini //新内容
[include]
files conf.d/*.conf //此处也可以是*.ini
//注意以上内容不要有 创建MyWebCore.conf文件也可以是*.ini需跟上一步保持一致填写如下内容 [program:MyWebCore]
commanddotnet MyWebCore.dll ;
directory/usr/myweb/MyWebCore ;
autorestarttrue ;
stderr_logfile/var/log/MyWebCore.err.log ;
stdout_logfile/var/log/MyWebCore.out.log ; environmentASPNETCORE_ENVIRONMENTProduction ; userroot ; stopsignalINT 将MyWebCore.conf文件拷贝至下列目录 /etc/supervisor/conf.d/ 执行下列命令查看是否生效 supervisord -c /etc/supervisor/supervisord.conf
ps -ef | grep MyWebCore 如果存在 dotnet MyWebCore.dll进程则表示运行成功 配置文件如有修改执行下列命令更新没有则忽略 supervisorctl reload 此处可能出现的问题没有则忽略 --重复的监听会提示如下错误 another program is already listening on a port that one of our HTTP servers is configured to use --解决方法 ps -ef | grep supervisord //查看监听的端口出现以下信息 root 2503 1 0 Nov19 ? 00:03:23 /usr/bin/python /usr/bin/supervisord
root 21337 2556 0 18:15 pts/8 00:00:00 grep --colorauto supervisord kill -s SIGTERM 2503 在浏览器中进行访问 守护进程Supervisor配置完成进行下一步 设置守护程序开机自启 如果服务器宕机重新启动后我们希望守护程序可以自启那么需要做以下操作 新建supervisord.service文件并写入以下内容 # dservice for systemd (CentOS 7.0)
# by ET-CS (https://github.com/ET-CS)
[Unit]
DescriptionSupervisor daemon[Service]
Typeforking
ExecStart/usr/bin/supervisord -c /etc/supervisor/supervisord.conf
ExecStop/usr/bin/supervisorctl shutdown ExecReload/usr/bin/supervisorctl reload KillModeprocess Restarton-failure RestartSec42s [Install] WantedBymulti-user.target 将supervisord.service文件上传至服务器下列目录 /usr/lib/systemd/system/ 执行下列命令将supervisor设为开机启动 systemctl enable supervisord 执行下列命令验证设置是否成功 systemctl is-enabled supervisord 返回enabled即为成功可以执行重启Linux服务器来进行验证 reboot 至此ASP.NET Core网站部署到Linux服务器的操作全部完成。 转载于:https://www.cnblogs.com/iamzl/p/7363766.html