您的位置:首页 > 理论基础 > 计算机网络

CentOS7.4下使用Nginx配置Asp.net Core和添加Https证书步骤

2019-04-13 15:10 966 查看

本人最近刚开始学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

如上图则配置正常

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐