两篇文章带你走入.NET Core 世界:Kestrel+Nginx+Supervisor 部署上云服务器(二)

栏目: Scala · 发布时间: 5年前

内容简介:上一篇:已经交待了背景,这篇就省下背景了,这是第二篇文章了,看完就木有下篇了。直接进入主题:

背景:

上一篇: 两篇文章带你走入.NET Core 世界:CentOS+Kestrel+Ngnix 虚拟机先走一遍(一)

已经交待了背景,这篇就省下背景了,这是第二篇文章了,看完就木有下篇了。

直接进入主题:

1、购买云服务器

之前在虚拟机跑了一下,感觉还不够真实,于是,准备买台服务器,认真的跑一下。

有阿里云,腾讯云,华为云,还有好多云,去哪买一个?

之前做为华为云的云享专家去参加了一下活动,本来也准备写篇文章,不过相同游记文太多,

这里就转一篇了: 让华为云MVP告诉你——在华为的一天可以做什么? ,就当作我已经写了吧,哈。

有人问我参加完华为云的活动后有什么感想,我想了想,就回了一句:华为好穷,别问我为什么。

所以,考虑过华为云,不过在比较完三方的价格,以及域名备案的问题,

还是挑了目前优惠力度最大的腾讯云,2.5折买的,记得我以前买的最便宜的是1.89折。

两篇文章带你走入.NET Core 世界:Kestrel+Nginx+Supervisor 部署上云服务器(二)

2、登陆云服务器

买完服务器,安装选的是CentOS7.2版本,比起跑虚拟机,这里就省掉了安装过程了。

在控制台想登陆,发现:密码是啥?百了一下,密码要在控制台-更多-密码/密钥-重置密码。

设置好密码就可以直接在控制台上,点登陆,ssh登陆上去了:

两篇文章带你走入.NET Core 世界:Kestrel+Nginx+Supervisor 部署上云服务器(二)

3、安装.NET Core SDK

依旧跟着微软的教程走: https://www.microsoft.com/net/learn/get-started/linuxcentos

4、下载SecureCRT+SecureFX

这里木有可视化,想要复制上传文件,没本地虚拟那么方便了,所以需要一款能连接敲命令行和上传文件的 工具 了。

下载地址:https://www.portablesoft.org/securecrt-securefx-integrated/

这里记录一下我遇到的坑:

1、本地电脑,N年前就下载过SecureCRT,所以用上它了,但是木有SecureFX这个工具。

2、于是想着,在服务器装个FTP啊,来啊,那就装个标配:vsftp了。

对着教程: https://www.centos.bz/2017/12/centos7%E9%83%A8%E7%BD%B2vsftpd%E6%9C%8D%E5%8A%A1/

一顿操作猛如虎,感觉服务端配置的差不多,准备入坑了:

flashFtp的坑:

本里机找了一个老旧的版本,结果连上去看不到东西,

以为是服务器权限没配置好,折腾半天,最后在工具的选项勾了某个"列表 -l显示”的选项后,连上去能看到目录了。

创建目录也正常了,结果不能上传文件,见鬼了,闹腾很久后,只能换工具了。

FileZilla的坑:

电脑重新装了这个工具,连上去,发现文件也能上传了,以为一切OK了。

结果,发现存在文件小的都上传不了,文件大的都能正常上传,我去,这是什么鬼。

又是折腾服务端配置,又是折腾路由器MTU值,情况依旧是小文件连接超时,传输失败。

后来,想起了SecureCRT标配的工具SecureFX,下载,重新运行它连上去,我X,一切都是这么顺畅。

5、安装配置Ngnix

具体参考上一篇,不过有几个重点配置提一下:

proxy_cookie_domain ~.+$ aries.cyqdata.com;

将Set-Cookie中的Domain值,替换为指定的域名。

Aries设置的Domain是IP属性,Nginx请求转给客户端时,需要转成域名,不设的话,拿到的是原始的IP,设不到Cookie。

两篇文章带你走入.NET Core 世界:Kestrel+Nginx+Supervisor 部署上云服务器(二)

网上对这块的说明都是仅有:

proxy_cookie_domain a.com b.com;

固定的把a.com替换成b.com,

考虑到负载均衡一开,这个IP的值就不固定,所以Domain值必须是变量。

难道你们设Cookie都不设置的Domain的啊,设了Domain都不考虑负载的啊。

坑啊,最后还是官网的帮助文档能解决问题,自己写了个正则搞定。

文档地址: http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cookie_domain

至于负载配置和动静态的配置比较简单:

负载均衡:在http配置下增加upstream配置即可:

upstream nodes {
server 192.168.10.1:8668;
server 192.168.10.2:8668;
}

动静分离:#静态文件交给nginx处理
location ~ .*\.(htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)$
{
root /var/www;
expires 30d;
}
#静态文件交给nginx处理
location ~ .*\.(js|css)?$ 
{
root /var/www; 
expires 1h; 
}

https 访问,参考: https://www.cnblogs.com/tianhei/p/7726505.html

6、安装配置:Supervisor守护进程

当Kestrel跑起来后,第二天,发现它挂了,然后,就知道要装个守护进程,等它挂掉的时候,能自动启动。

为了安装这个,一开始我也是入坑,网上的教程,又坑人不浅,最后找到最简单的yum安装,就两行命令:

yum install epel-release
yum install -y supervisor

默认配置文件:/etc/supervisord.conf 暂时可以不用管,如果要开启网页管理,则修改以下两行:

[inet_http_server]         ; inet (TCP) server disabled by default
port=*:5005        ; (ip_address:port specifier, *:port for all iface)

...

[supervisorctl]
;serverurl=unix:///var/run/supervisor/supervisor.sock ; use a unix:// URL  for a unix socket
serverurl=http://*:5005 ; use an http:// url to specify an inet socket

....


[include]
files = supervisord.d/*.ini




设置开机启动:

systemctl enable supervisor.service
systemctl daemon-reload

浏览的效果如下:

两篇文章带你走入.NET Core 世界:Kestrel+Nginx+Supervisor 部署上云服务器(二)

进程管理配置文件放到:/etc/supervisord.d/目录下即可:

两篇文章带你走入.NET Core 世界:Kestrel+Nginx+Supervisor 部署上云服务器(二)

如上图,我创建了两个进程配置文件:

配置文件内容如下:

taurus_mvc.ini

[program:Taurus_MVC]
command=/bin/bash -c "dotnet Taurus.View.dll"
directory=/home/web/taurus/mvc/
environment=ASPNETCORE__ENVIRONMENT=Production 
user=root 
stopsignal=INT
autostart=true
autorestart=true
startsecs=3    
redirect_stderr=true
stderr_logfile=/var/log/taurus_mvc.err.log   
stdout_logfile=/var/log/taurus_mvc.out.log  

aries_mvc.ini

[program:Aries_MVC]
command=/bin/bash -c "dotnet Web.UI.dll"
directory=/home/web/aries/mvc/
environment=ASPNETCORE__ENVIRONMENT=Production 
user=root 
stopsignal=INT
autostart=true
autorestart=true
startsecs=3    
redirect_stderr=true
stderr_logfile=/var/log/aries_mvc.err.log   
stdout_logfile=/var/log/aries_mvc.out.log

默认日志文件:/tmp/supervisord.log,可以查看进程的启动信息

命令行输入:supervisorctl,可以查看状态:

两篇文章带你走入.NET Core 世界:Kestrel+Nginx+Supervisor 部署上云服务器(二)

更多的说明:https://www.linuxidc.com/Linux/2017-02/140417.htm

总结:

把这两篇文章的内容,走完一次,基本就进入NetCore的世界了。

不过,与其说是NetCore,不如说是走进 Linux 的世界。

写代码的关键注意点:路径区分大小写及路径用“/”,而不是常用的"\\"。

毕竟更多的时间与坑,都是花在Linux系统及软件安装使用上的。

Aries on CentOS7: mvc.aries.cyqdata.com

Taurus on CentOS7: mvc.taurus.cyqdata.com


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Just My Type

Just My Type

Simon Garfield / Profile Books / 2010-10-21 / GBP 14.99

What's your type? Suddenly everyone's obsessed with fonts. Whether you're enraged by Ikea's Verdanagate, want to know what the Beach Boys have in common with easy Jet or why it's okay to like Comic Sa......一起来看看 《Just My Type》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

URL 编码/解码
URL 编码/解码

URL 编码/解码