nginx配置负载均衡与反向代理

#给文件夹授权

1

nginx

#修改配置文件

vim nginx.conf

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

33

34

35

36

37

38

39

40

41

42

;

;

;

;

;

{

;

;

}

{

;

;

;

;

;

;

#缓冲区代理缓冲用户端请求的最大字节数,可以理解为保存到本地再传给用户

;

;

;

;

#nginx跟后端服务器连接超时时间(代理连接超时)

#连接成功后,后端服务器响应时间(代理接收超时)

;

#设置代理服务器(nginx)保存用户头信息的缓冲区大小

#proxy_buffers缓冲区,网页平均在32k以下的话,这样设置

#高负荷下缓冲大小(proxy_buffers*2)

#设定缓存文件夹大小,大于这个值,将从upstream服务器传递请求,而不缓冲到磁盘

#不允许代理端主动关闭连接

{

;

;

{

;

;

}

;

{

;

}

}

}

编辑反向代理服务器配置文件:

vim /usr/local/nginx/conf/reverse-proxy.conf

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

server

{

;

;

{

;

;

;

;

//192.168.10.38:3000;

}

;

}

server

{

;

;

{

;

;

;

;

//192.168.10.40:80;

}

;

}

然后重新加载nginx配置文件,使之修改生效,再把xxx123.tk域名指向公司静态IP,这样就成功的做到了在浏览器中输入xxx123.tk的时候访问的内网服务器192.168.10.38的3000端口,输入xxx456.tk访问192.168.10.40的80端口的作用。

如果想对后端机器做负载均衡,像下面这配置就可以把对nagios.xxx123.tk的请求分发给内网的131和132这两台机器做负载均衡了。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

{

;

;

}

server

{

;

;

{

;

;

;

;

//monitor_server;

}

;

}

额,关于负载均衡和缓存就不多说了,这里只是要起到一个简单的“域名转发”功能。

另外,由于http请求最后都是由反向代理服务器传递给后段的机器,所以后端的机器原来的访问日志记录的访问IP都是反向代理服务器的IP。

要想能记录真实IP,需要修改后端机器的日志格式,这里假设后端也是一台nginx:

在后端配置文件里面加入这一段即可:

1

2

3

4

5

;

;

再看看原来日志的格式长什么样:

1

2

3

4

5

#access_log logs/access.log main;

看出区别了吧