使用Nginx对.NetCore站点进行反向代理
前言
之前的博客我已经在Linux上部署好了.NetCore站点且通过Supervisor对站点进行了进程守护,同时也安装好了Nginx。
Nginx的用处非常大,还是简单说下,它最大的功能就是方便我们做后续的横向拓展,当站点的流量越来越大时候可以进行负载均衡,反向代理最大用处也是如此。
反向代理
反向代理我是这么理解的,用户在客户端输入指定的url,这个url对应的服务器实际上不一定是最终处理该请求的服务器,可以将这个服务器作为一个中间层,它可以将请求再次分发到指定的应用服务器上,然后得到反馈后再返回给客户端。当然对于一些静态资源的请求或者有动态资源缓存则直接将这些静态资源或者缓存数据返回给客户端,从而减轻了应用服务器的压力。
正向请求
正向请求相比反向请求部署更简单,请求的链路也更短,对于压力不大的站点可以采取这种方式,反向代理如果不应用在请求量较大的站点则我个人认为是画蛇添足,因为它本身的请求链路就加长了,某种程度上也降低了请求速度。
配置nginx.conf配置文件
如需nginx进行对站点的反向代理需要对/usr/local/nginx/conf/nginx.conf 进行配置
输入 vim /usr/local/nginx/conf/nginx.conf 我们找到http节点下的server,如下图
将location /下面的内容进行更新,如下图
将root和index更新为 proxy_pass http://localhost:5000
http://localhost:5000正是我们部署好的站点路径,我们配置的结果就是将上面监听到的80端口的请求最终再跳转到我们刚刚配置的5000端口去。
这里也对配置文件的一些节点做简单介绍:
- listen:表示当前的代理服务器监听的端口,默认的是监听80端口。注意,如果配置了多个server,这个listen要配置不一样。
- server_name:表示监听到之后需要转到哪里去,这时我们直接转到本地,这时是直接到nginx文件夹内。
- location:表示匹配的路径,这时配置了/表示所有请求都被匹配到这里
- root:里面配置了root这时表示当匹配这个请求的路径时,将会在这个文件夹内寻找相应的文件,这里对我们之后的静态文件伺服很有用。
- index:当没有指定主页时,默认会选择这个指定的文件,它可以有多个,并按顺序来加载,如果第一个不存在,则找第二个,依此类推。
在vim编辑器内编辑完毕后转为命令模式输入:wq 保存并退出。
检查nginx配置
输入如下命令进行检查
/usr/local/nginx/sbin/nginx -t
出现下图表示正确
重新加载配置文件并重启nginx
输入如下命令重启nginx
/usr/local/nginx/sbin/nginx -s reload
重新reload可能会出现如下错误
nginx: [error] invalid PID number "" in "/usr/local/nginx/logs/nginx.pid"
解决方式,在Linux控制台输入下面命令
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
这时候输入命令netstat -tunlp
查看Nginx已正常运行,如下图
嘿嘿,然后在客户端通过80端口也可以访问我们之前端口号为5000的.Netcore站点啦