CentOS7.4下使用Nginx配置Asp.net Core和添加Https证书步骤
本人最近刚开始学Asp.net Core,为了方便以后的练习,打算先把Asp.net Core的部署环境先搭建起来。
开发环境:
1.Asp.Net Core 2.2
2.VS2017
服务器:
Https证书:
腾讯云免费证书
注意:
Asp.net Core默认链接为http://loaclhost:5000,因此需要修改 Program.cs 使用通配符 .UseUrls("http://*:5000"),这样就可以用服务器ip或者绑定域名去访问
步骤:
一.打包发布Asp.net Core项目
二.登录CentOS系统,按顺序操作
1.注册Linux系统
1 | sudo rpm -- import https: //packages .microsoft.com /keys/microsoft .asc |
1 | sudo sh -c 'echo -e "[packages-microsoft-com-prod]\nname=packages-microsoft-com-prod \nbaseurl= https://packages.microsoft.com/yumrepos/microsoft-rhel7.3-prod\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/dotnetdev.repo' |
2.更新安装包,安装.NET Core(服务器配置低的话每一步执行命令的时间会比较久)
1 2 3 | sudo yum update sudo yum install libunwind libicu sudo yum install dotnet-sdk-2.2 |
3.安装Nginx
1 | sudo yum install -y nginx |
4.设置Nginx自动启动,并启动Nginx
1 | sudo systemctl start nginx.service |
打开浏览器,输入服务器IP,显示这个页面则安装成功
5.下载XFTP6,并且上传打包好的Asp.net Core项目文件到/Home/目录下面
6.打开CentOS系统防火墙,并开放80/443/5000端口
1 2 3 4 | systemctl start firewalld.service firewall-cmd --zone=public --add-port=80 /tcp --permanent firewall-cmd --zone=public --add-port=443 /tcp --permanent firewall-cmd --zone=public --add-port=5000 /tcp --permanent |
重启防火墙
1 | firewall-cmd --reload |
7.配置Nginx监听80端口,反向代理Asp.net Core项目
在/etc/nginx/下找到nginx.conf文件,并查看第一个监听80端口的Server,修改成
1 2 3 4 5 6 7 8 9 10 11 12 | server { listen 80; server_name localhost; 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
1 2 3 | nginx - v 查看Nginx的版本 nginx -t 修改完配置文件后查看是否正确 nginx -s reload 重启Nginx |
8.配置Https证书
将从腾讯云下载的证书,上传到/etc/nginx文件夹里面
修改nginx.conf文件,将监听443端口的server改成
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | server { listen 443; server_name www.XXX.com; #填写绑定证书的域名 ssl on; ssl_certificate 1_www.XXX.com_bundle.crt; ssl_certificate_key 2_www.XXX.com.key; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置 ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; #按照这个套件配置 ssl_prefer_server_ciphers on; 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; } } |
9.运行网站
1 | dotnet /home/CoreTest/CoreTest .Web.dll |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架