首先要搞清楚为什么使用Nginx,他是干什么的。
我们的项目流程是将项目部署到服务器,客户端访问服务器得到自己想要的响应,
这里说明下面的图是来自狂神说java的笔记中。
假如我们一台服务器,一个客户还好说,
如果客户量大起来,一台服务器就满足不了我们的需求
于是可以横向扩展,增加服务器 这时几个项目启动在不同的服务器上
用户要访问,就需要增加一个代理服务器了,通过代理服务器来帮我们转发和处理请求。
中间的服务器1就可以当作代理服务。
这里咱们用Nginx实现,他就相当于服务器1
Nginx简介
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。
其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好。
无缓存的反向代理加速,简单的负载均衡和容错。
正向代理,意思是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。
正向代理如图
反向代理
反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。反向代理服务器通常可用来作为Web加速,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率。
在我看来正反代理最大的区别就是用户发送的请求知不知道自己访问哪个服务器。
Nginx提供的负载均衡
就是给服务器加权重,分配请求分发到各个服务器的比例,内存大的就处理更多的请求。
动静分离
设置静态请求和动态请求的分发位置,以实现动静分离。
Nginx的配置文件编写
http {
upstream rainhey{ //rainhey是自定义的名称,用于location中引用
server 127.0.0.1:8082/ weight=1; //服务地址、端口 权重-比例,可以用来设置负载均衡
server 127.0.0.1:8081/ weight=1;
}
server {
listen 80;
server_name localhost;
location / { // nginx拦截所有 80端口的 /请求
root html;
index index.html index.htm;
proxy_pass http://rainhey; // 代理到rainhey服务列表中的服务
}
原文链接:https://blog.csdn.net/Voctorial/article/details/122948510