龙空技术网

Nginx反向代理和负载均衡配置

程序学习笔记 570

前言:

眼前朋友们对“nginx域名分流”大约比较注重,朋友们都想要学习一些“nginx域名分流”的相关资讯。那么小编也在网摘上汇集了一些关于“nginx域名分流””的相关资讯,希望我们能喜欢,大家一起来了解一下吧!

主要了解一下nginx的反向代理和负责均衡的配置。

先了解一下常用的命令,进入sbin目录

./nginx 启动nginx ./nginx -s stop 快速关闭nginx,可能不保存相关信息,并快速结束web服务./nginx -s quit 平稳关闭nginx,保存相关信息,有安排的结束web服务./nginx -s reload 重启,修改配置后都需要重启

反向代理

反向代理,就是"代理服务器"代理了"目标服务器",去和"客户端"进行交互。

nginx的配置文件默认是/conf目录里的nginx.cnf。主要看http块中,配置就简单些。

http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; #设定实际的服务器列表 upstream server1{ server 127.0.0.1:8080; } server { listen 80; #使用访问 server_name ; #首页 index index.html;  #反向代理的路径,和upstream绑定 location / { proxy_pass ; } }}

修改了配置文件,使用 nginx -t 检测一下有没错误,出现successful说明没有问题,可以重新启动nginx。

接下来,第一步需要在服务器上部署我们的web项目,tomcat端口要是8080的。我这里搞一个简单项目,名称test,里面的首页index.html

index.html只有一句话:测试项目一

第二、打开我们计算机的hosts文件,路径 是

C:\Windows\System32\drivers\etc,在底部添加一行

192.168.1.104 

192.168.1.104是服务器ip,这样,当访问时,系统会首先自动从Hosts文件中寻找其对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到,则系统会再将网址提交DNS域名解析服务器进行IP地址的解析。

现在启动项目的tomcat,记得启动前要开放端口8080,启动完成在浏览器访问

能访问到首页的内容,说明配置成功了。

负载均衡

在实际中,我们的网站或者系统都会有多台服务器运行着同一个项目,这时需要使用负载均衡来分流。使用nginx也可以实现负载均衡。

搞了两台虚拟机来模拟,192.168.1.104和192.168.1.169。在192.168.1.104上部署nginx,对请求作负载均衡处理。

同样配置简单些

http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; #设定实际的服务器列表 upstream balance-server{ #weigth参数表示权值,权值越高被分配到的几率越大 server 192.168.1.104:8080 weight=1 server 192.168.1.169:8080 weight=3 } server { listen 80; #使用访问 server_name ; #首页 index index.html; #反向代理的路径,和upstream绑定 location / { proxy_pass ; }  }}

最近在弄的时候,发现一个坑,upstream balance-server 这里,不能使用下划线“_”,不然后访问项目会报错。

The character [_] is never valid in a domain name.

现在两台机器已经部署了同样的项目,当前首页内容改一下以作区别,启动项目。

现在是虚拟机上,两台机器都可以直接访问,看一下内容

104:

109:

现在启动nginx,先用nginx -t看一下配置文件有无报错

successful,说明没有问题。启动之后记得要配置计算机的hosts文件。

现在访问:

访问没有问题,自己配置的时候可以多刷新几次,看看效果。

配置还是比较简单的,性能优化会比较难。还有一些配置的可选参数可以去了解一下,还有其他的功能,比如静态资源配置、黑白名单、限流等等,有需要可以深入学习一下。

标签: #nginx域名分流