Nginx是什么?

Nginx是一个轻量级/高性能的反向代理Web服务器,它的主要功能就是反向代理、负载均衡、配置SSL证书、防盗链、解决跨域问题、缓存、限流、动静资源分离等等。

区别正向代理和反向代理

总的来说,正向代理代理的是客户端,反向代理代理的是服务端

nginx配置文件的编写

http有很多server

server有很多location

一个server可以理解为一个服务

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#1.全局配置------------------------------------------------------------------------
...

#events 配置--------------------------------------------------------------------
2.events {
...
}
#http 配置----------------------------------------------------------------------
http
{
#3.http 全局配置
...
#4.server 全局配置,在这里负载均衡
upstream test {
server localhost:8080;
server localhost:8081;
}

server //这里是转发的主要代码
{
#5.server全局配置
listen 80;
server_name localhost;
client_max_body_size 1024M;

#6.location配置,在这里动静分离
location / {
proxy_pass http://localhost:8080; // 如果负载均衡 proxy_pass http://test;
proxy_set_header Host $host:$server_port;
}
}
}

动静分离

1
2
3
4
5
6
7
8
9
10
server {
listen 80;
server_name localhost;
client_max_body_size 1024M;

location ~ \.(html)$ { // 访问html的话就转发
root e:\wwwroot;
index index.html;
}
}

为什么要动静分离?

因为访问动态资源的话是需要转发到服务器的,途中需要时间,但是静态资源可以放在nginx服务器内,响应更快

负载均衡

可以设置权重、使用ip_hash、fair(响应时间短的优先)、url_hash

1
2
3
4
upstream backserver { 
server 192.168.1.1;
server 192.168.1.2;
}

为什么要负载均衡?

多台机器同时跑一个程序的话,前端不用管后端的集群的那些服务是哪个接口,只需要请求某个接口,交给Nginx转发就好了

集群

待办