nginx服务器的反向代理和负载均衡

2 篇文章 0 订阅
1 篇文章 0 订阅

 

1.Nginx服务器

首先让我们来了解下什么是nginx服务器,Nginx其实就是一个开源的,高性能的HTTP服务器和反向代理服务器;同时也是一个IMAP,POP3,SMTP代理服务器;Nginx可以作为一个HTTP服务器进行网站的发布处理,另外Nginx可以作为反向代理进行负载均衡的实现。

谈到Nginx服务器,我们也有必要了解下正向代理和反向代理

正向代理

正向代理类似一个跳板机,代理访问外部资源。

举个例子:

我是一个用户,我访问不了某网站,但是我能访问一个代理服务器,他能访问那个我不能访问你的网站,于是我先连上代理服务器,告诉他我需要那个无法访问网站的内容,代理服务器去取回来,然后返回给我。从网站的角度,只在代理服务器来取内容的时候有一次记录,有时候并不知道用户的请求,也隐藏了用户的资料,这取决于代理告不告诉网站。

客户端必须设置正向代理服务器,当然前提是要知道正向代理服务器的ip地址,还有代理程序的端口。

反向代理

初次接触反向代理的感觉:客户端是无感知代理的存在,反向代理是对外透明的,访问者并不知道自己访问的是一个代理。因为客户端不需要任何配置就可以访问。

反向代理实际运行方式是指以代理服务器来接收internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。

区别

正向代理就是类似于代理了客户端,客户端必须要进行一些特别的配置才能使用正向代理,对于客户端想要访问的服务器来讲,服务器想要获得客户端的信息取决于代理服务器给不给它。

而反向代理就类似于代理了服务端,客户端是无感知代理的存在的,也就是说访问者并不知道自己访问的是一个代理,因为客户端不需要进行任何配置就可以访问。

好了,话不多说,让我们赶紧进入正题吧,首先博主是虚拟机中的linux系统中模拟的,需要安装的环境有如下:

1.jdk1.8

2.nginx

3.tomcat

2.安装jdk

当然啦,最好是jdk1.8的版本,安装jdk有两种方式,一种是直接在官网上下载jdk1.8的tar压缩包,进行解压安装,但是别忘了配置环境变量哦

输入命令:

vi /etc/profile

 设置环境变量,添加以下代码即可,但需要注意的是JAVA_HOME写的是自己安装jdk的目录哦

JAVA_HOME=/home/java/jdk1.8.0_131
JRE_HOME=$JAVA_HOME/jre
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:/$JAVA_HOME/lib/tools.jar
export JAVE_HOME
export JRE_HOME
export PATH
export CLASSPATH

 输入命令刷新环境变量使其理解生效

source /etc/profile

 输入java -version查看已安装版本就行了

虽然大体上是完成了,但最好还是做最后一步,设置一个超链接,因为一些自己注册的linux服务(如springboot的jar注册的服务),默认情况下从/usr/bin/java路径使用java,yum安装的时候,这个超链接会自动创建。


ln -s /home/java/jdk1.8.0_131/bin/java /usr/bin/java

第一个路径是本地安装jdk的目录,第二个路径是需要设置的超链接

博主比较懒,所以就选择了第二种方式啦,使用yum安装,这种方式就可以不用自己配置环境变量了,也不用建超链接了。

1.执行命令查看可安装java版本
yum -y list java*

2.执行命令安装,注意要选择-devel结尾的,因为这个安装的是jdk,不带-devel的安装的其实是jre,然后根据自己电脑是多少位的选择安装就行了,博主的是64位的,所以选择x86_64
yum install -y java-1.8.0-openjdk-devel.x86_64

 最后注意的是,通过yum安装的jdk,我们可以在/usr/lib/jvm目录下找到他们

3.安装Nginx

参照以下链接即可,写的挺详细的

http://www.cnblogs.com/crazylqy/p/6891929.html  

4.安装tomcat

也是直接从tomcat官网上下载tomcat的tar压缩包,拷贝到linux服务器上直接解压就行了,当然因为我们要搭建tomcat集群,所以需要解压两次,解压后的文件夹一个是tomcat1另一个是tomcat2,最后配置下这两个tomcat的环境变量就行了。


export TOMCAT_HOME1=/usr/local/tomcat1
export TOMCAT_HOME2=/usr/local/tomcat2
export PATH=$TOMCAT_HOME1/bin:$TOMCAT_HOME2/bin

5.设置tomcat的端口号

 tomcat1/conf/server.xml   进去该文件,进行编辑,第一个tomcat可以不做配置,默认就行,只要别产生端口冲突就行

tomcat2/conf/server.xml  进入第二个tomcat的配置文件,更改端口号

 

 这里说明一下:server标签中的port是tomcat这个服务器的端口,connector标签的port,第一个是http协议的端口,第二个是AJP/1.3协议的端口号,而我们除了修改端口号,还需要在Engine标签中加 jvmRoute=“tomcat2”(tomcat2是tomcat的安装目录名)

博主这里第一个访问tomcat的端口改的是8888,第二个访问tomcat的端口是9999,然后通过虚拟机的ip地址和端口就可以访问tomcat了

例如:http://192.168.1.149:8888  http://192.168.1.149:9999

6.nginx反向代理和负载均衡的配置

输入命令:vi /usr/local/nginx/conf/nginx.conf  修改nginx的配置文件,增加两个红线框的内容即可,如下:

因为本博主tomcat和nginx都是安装在虚拟机中,ip地址为192.168.1.149,第一个红线框是服务器列表,也就是tomcat的访问地址,第二个红线框是反向代理,其中proxy_set_header如果不加上的话,访问的时候可能会报400错误,因为如果后端服务器设置有类似防盗链或者根据http请求头中的host字段来进行路由或判断功能的话,如果反向代理层的nginx不重写请求头中的host字段,将导致请求失败,报400错误。

当我们修改好了配置文件时,别忘记使用命令重启nginx服务器:

如果nginx配置了环境变量,便可直接在任意目录下输入
./nginx -s reload

如果没有配置环境变量,则需要在sbin目录下输入
./nginx -s reload

最后,我们只需要在浏览器上输入http://192.168.1.149:80便可访问tomcat了,当然了是随机访问两个tomcat中的一个。

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Nginx是一款常用的Web服务器软件,也可以用作反向代理负载均衡器。反向代理是指Nginx作为一个中间服务器,接收客户端的请求并将其转发给后端的服务器处理,然后将响应返回给客户端。 负载均衡是指将客户端请求分发到多个后端服务器上,以平衡服务器的负载。Nginx通过使用不同的负载均衡算法,如轮询、IP哈希、最少连接等,来决定将请求发送给哪个后端服务器。 配置Nginx作为反向代理负载均衡器需要进行一些设置。首先,你需要在Nginx配置文件中定义后端服务器的地址和端口,并设置相应的负载均衡策略。例如: ```nginx http { upstream backend { server backend1.example.com; server backend2.example.com; server backend3.example.com; } server { listen 80; server_name mywebsite.com; location / { proxy_pass http://backend; } } } ``` 在上述配置中,`upstream`指令定义了后端服务器的地址,在这里我们指定了三个后端服务器。`server`块中的`location`指令指定了代理转发的路径,`proxy_pass`指令将请求转发给定义的`upstream`。 这样配置之后,当有客户端请求到达Nginx时,Nginx会根据定义的负载均衡策略将请求转发给后端服务器,并将后端服务器的响应返回给客户端。 这就是Nginx反向代理负载均衡的基本概念和配置方法。希望对你有所帮助!如果还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值