asp.net core 2.1 部署 centos7
asp.net core 2.1 部署 centos7
kestrel 非常适合从 asp.net core 提供动态内容。 但是,web 服务功能不像服务器(如 iis、apache 或 nginx)那样功能丰富。 反向代理服务器可以从 http 服务器卸载服务静态内容、缓存请求、压缩请求和 ssl 终端等工作。 反向代理服务器可能驻留在专用计算机上,也可能与 http 服务器一起部署。
鉴于此指南的目的,使用 nginx 的单个实例。 它与 http 服务器一起运行在同一服务器上。
- 参考文档
- 64位安装sdk所需依赖
- yum update
- yum -y install libunwind
- yum -y install libicu
- 注册微软产品密钥
- 执行 sudo rpm -uvh
- 安装sdk/runtime
- yum -y install dotnet-sdk-2.1 或 yum -y install aspnetcore-runtime-2.1
- 检测安装
-
执行 dotnet --info,验证安装结果,如下:
.net core sdk (reflecting any global.json):
version: 2.1.401
commit: 91b1c13032
runtime environment:
os name: centos
os version: 7
os platform: linux
rid: centos.7-x64
base path: /usr/share/dotnet/sdk/2.1.401/
...
- 创建并允许实例
- 创建mvc应用程序 x:\mvcapp2 dotnet new mvc
- 本地运行(win10) dotnet run
- 浏览器访问
-
发布linux程序 dotnet publish -c release -o "xx:\web_iis\mvcapp2" -r centos.7-x64
- xftp上传文件到指定目录 /home/doetnetcore/mvcapp2
- 运行程序 cd /home/dotnetcore/mvcapp2 dotnet mvcapp2.dll 如图:默认启用5000端口
- centos7 外部计算机若无法访问,请检查网络防火墙(即使关闭防火墙端口默认只开放22)
-
检查站点运行情况 curl
-
查看防火墙状态 firewall-cmd --state //running 表示运行
附防火墙相关命令
启动: systemctl start firewalld
查看状态:systemctl status firewalld
停止:systemctl disable firewalld
禁用:systemctl stop firewalld
启动服务:systemctl start firewalld.service
关闭服务:systemctl stop firewalld.service
重启服务:systemctl restart firewalld.service
服务的状态:systemctl status firewalld.service
在开机时启用一个服务:systemctl enable firewalld.service
在开机时禁用一个服务:systemctl disable firewalld.service
查看服务是否开机启动:systemctl is-enabled firewalld.service
查看已启动的服务列表:systemctl list-unit-files|grep enabled
查看启动失败的服务列表:systemctl --failed
查看版本: firewall-cmd --version
查看帮助: firewall-cmd --help
显示状态: firewall-cmd --state
查看所有打开的端口: firewall-cmd --zone=public --list-ports
更新防火墙规则: firewall-cmd --reload
查看区域信息: firewall-cmd --get-active-zones
查看指定接口所属区域: firewall-cmd --get-zone-of-interface=eth0
拒绝所有包:firewall-cmd --panic-on
取消拒绝状态: firewall-cmd --panic-off
查看是否拒绝: firewall-cmd --query-panic
- 配置nginx转发
-
安装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.rpm
yum install nginx - 检查端口占用情况 yum install net-tools netstat -a //端口列表
-
启动 nginx
命令:systemctl start nginx
设置开机启动 systemctl enable nginx
firewall-cmd --zone=public --add-port=80/tcp --permanent(永久启用80端口)
重启防火墙 systemctl restart firewalld
浏览器测试nginx能否正常访问 -
修改nginx配置文件
yum -y install vim 可用默认vi替代
修改 /etc/nginx/conf.d/default.conf 文件。
通过 vim /etc/nginx/conf.d/default.conf 打开,编辑里面的内容,保存时按 esc 再输入 :wq! 命令保存退出
修改为如下脚本:
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; } }
- 启动站点 浏览器正常访问asp.netcore 应用程序
-
nginx参考文献
其他参考文档:
配置守护服务(supervisor)
- 配置apache转发
上一篇: Win10系统自动检测设置功能总是会自动勾选问题的解决方法
下一篇: RHEL7系统管理之网络管理
推荐阅读
-
ASP.NET Core部署前期准备 使用Hyper-V安装Ubuntu Server 16.10
-
Linux下自动化部署ASP.NET CORE 3.1(Docker+Jenkins+Nginx)
-
ASP.NET Core 1.0 部署 HTTPS (.NET Core 1.0)
-
ASP.NET Core Web 应用程序开发期间部署到IIS自定义主机域名并附加到进程调试
-
详解Asp.Net Core 2.1+的视图缓存(响应缓存)
-
asp.net core 2.1 配置管理
-
详解Asp.Net Core 发布和部署( MacOS + Linux + Nginx )
-
Asp.net Core 初探(发布和部署Linux)
-
详解将ASP.NET Core应用程序部署至生产环境中(CentOS7)
-
ASP.NET Core2.1 你不得不了解的GDPR(Cookie处理)