CentOS7.4下使用Nginx配置Asp.net Core和添加Https证书步骤
本人最近刚开始学Asp.net Core,为了方便以后的练习,打算先把Asp.net Core的部署环境先搭建起来。
开发环境:
1.Asp.Net Core 2.2
2.VS2017
服务器:
腾讯云服务器 CentOS7.4
Https证书:
腾讯云免费证书
注意:
Asp.net Core默认链接为http://loaclhost:5000,因此需要修改 Program.cs 使用通配符 .UseUrls("http://*:5000"),这样就可以用服务器ip或者绑定域名去访问
步骤:
一.打包发布Asp.net Core项目
二.登录CentOS系统,按顺序操作
1.注册Linux系统
[code]sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
[code]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(服务器配置低的话每一步执行命令的时间会比较久)
[code]sudo yum update
[code]sudo yum install libunwind libicu
[code]sudo yum install dotnet-sdk-2.2
3.安装Nginx
[code]sudo yum install -y nginx
4.设置Nginx自动启动,并启动Nginx
[code]sudo systemctl start nginx.service systemctl enable nginx
打开浏览器,输入服务器IP,显示这个页面则安装成功
5.下载XFTP6,并且上传打包好的Asp.net Core项目文件到/Home/目录下面
6.打开CentOS系统防火墙,并开放80/443/5000端口
[code]systemctl start firewalld.service
[code]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
重启防火墙
[code]firewall-cmd --reload
7.配置Nginx监听80端口,反向代理Asp.net Core项目
在/etc/nginx/下找到nginx.conf文件,并查看第一个监听80端口的Server,修改成
[code]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
[code]nginx -v 查看Nginx的版本 nginx -t 修改完配置文件后查看是否正确 nginx -s reload 重启Nginx
8.配置Https证书
将从腾讯云下载的证书,上传到/etc/nginx文件夹里面
修改nginx.conf文件,将监听443端口的server改成
[code]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.运行网站
[code]dotnet /home/CoreTest/CoreTest.Web.dll
此时网站已经配置成功,并且也配置了https证书
但是,此时把Linux窗口关闭,则网站会停止运行,所以我们还必须配置一个守护进程
10.配置Supervisor,创建后台守护进程
[code]yum install supervisor 安装supervisor
/etc/supervisord.conf文件为Supervisor的配置文件,打开该文件,看到最后一行
[include] files=supervisord.d/*.ini
这句话表示我们可以将要创建的守护进程通过放在/etc/supervisord.d目录下面,并且写在后缀为.ini的配置文件里面。这句话也可以自己改动。
我们在该目录下面新创建一个CoreTest.ini文件,用记事本打开,写入下面内容
[code][program:CoreTest] command=dotnet CoreTest.Web.dll directory=/home/CoreTest environment=ASPNETCORE__ENVIRONMENT=Production user=root stopsignal=INT autostart=true autorestart=true startsecs=3 stderr_logfile=/var/log/ossoffical.err.log stdout_logfile=/var/log/ossoffical.out.log
启动服务
[code]supervisord -c /etc/supervisord.conf
把supervisord设置为开机启动
[code]systemctl enable supervisord
查看服务是否运行
[code]ps -ef | grep dotnet
如上图则配置正常
- Windows IIS ASP.NET Core中创建和使用HTTPS自签名证书
- [C#]使用 C# 代码实现拓扑排序 dotNet Core WEB程序使用 Nginx反向代理 C#里面获得应用程序的当前路径 关于Nginx设置端口号,在Asp.net 获取不到的,解决办法 .Net程序员 初学Ubuntu ,配置Nignix 夜深了,写了个JQuery的省市区三级级联效果
- 在linux(centos)使用openssl生成https证书并配置到nginx的实现过程
- 项目开发中的一些注意事项以及技巧总结 基于Repository模式设计项目架构—你可以参考的项目架构设计 Asp.Net Core中使用RSA加密 EF Core中的多对多映射如何实现? asp.net core下的如何给网站做安全设置 获取服务端https证书 Js异常捕获
- 使用自签的证书配置nginx的https
- ASP.NET Core Kestrel 中使用 HTTPS (SSL)
- ASP.NET Core 1.0 安装并发布到Centos 7.2 使用jexus 5.8.2
- ASP.NET Core 发布 centos7 配置守护进程
- 1.5准备CentOS和Nginx环境「深入浅出ASP.NET Core系列」
- Linux( CentOS 6.6 ) 环境下使用 MONO + Jexus 配置 ASP.NET 以及MVC运行环境
- ASP.NET Core Kestrel 中使用 HTTPS (SSL)
- Node.js程序配置使用Nginx服务器(2017.11.17添加https)
- 【ASP.NET Core快速入门】(五)命令行配置、Json文件配置、Bind读取配置到C#实例、在Core Mvc中使用Options
- 如何为ASP.NET Core的强类型配置对象添加验证
- 如何为ASP.NET Core的强类型配置对象添加验证
- SharePoint 2013 表单认证使用ASP.Net配置工具添加用户
- 为微信小程序开发做准备,在Centos 6.8下利用letsencrypt.sh脚本为nginx 配置免费https证书
- Centos6.5服务器配置nginx的https证书
- ASP.NET Core Kestrel 中使用 HTTPS (SSL)
- Centos7.2下Nginx配置SSL支持https访问(站点是基于.Net Core2.0开发的WebApi)