当前位置:首页>开发>正文

nginx的反向代理和负载均衡的区别是什么 nginx apache做反向代理无法实现

2023-05-16 09:26:55 互联网 未知 开发

 nginx的反向代理和负载均衡的区别是什么 nginx   apache做反向代理无法实现

nginx的反向代理和负载均衡的区别是什么

负载均衡需要通过反向代理来实现
反向代理就是指nginx作为前端服务器,将请求转发到后端,再将后端服务器的结果,返回给客户端
它在中间做了一个代理服务器的角色
负载均衡对反向代理增加了一些策略,因为后端是多台服务器,nginx会根据设定的策略将请求转发给一个相对空闲的服务器,对负载进行分流,减轻服务器压力

nginx apache做反向代理无法实现

1)环境:
a. 本地使用Windows系统,然后使用VirutalBox安装一个虚拟的Linux系统。
在本地的Windows系统上分别安装nginx(侦听8080端口)和apache(侦听80端口)。在虚拟的Linux系统上安装apache(侦听80端口)。这样相当于拥有了1台nginx在前端作为反向代理服务器;后面有2台apache作为应用程序服务器(可以看作是小型的server cluster。);
b. nginx用来作为反向代理服务器,放置到两台apache之前,作为用户访问的入口;
nginx仅仅处理静态页面,动态的页面(php请求)统统都交付给后台的两台apache来处理。也就是说,可以把网站的静态页面或者文件放置到nginx的目录下;动态的页面和数据库访问都保留到后台的apache服务器上。
c. 如下两种方法实现server cluster的负载均衡。
假设前端nginx(为127.0.0.1:8080)仅仅包含一个静态页面index.html;后 台的两个apache服务器(分别为localhost:80和158.37.70.143:80),一台根目录放置phpMyAdmin文件夹和 test.php(里面测试代码为print "server1"),另一台根目录仅仅放置一个test.php(里面测试代码为print "server2")。
2)针对不同请求的负载均衡:
a. 在最简单地构建反向代理的时候(nginx仅仅处理静态不处理动态内容,动态内容交给后台的apache server来处理),具体的设置为:在nginx.conf中修改:
location ~ .php$ {
proxy_pass 158.37.70.143:80
}
>;这样当客户端访问localhost:8080/index.html的时候,前端的nginx会自动进行响应;

Nginx 反向代理为什么可以提高网站性能

nginx对高并发表现较好,nginx反向代理可以用于实现负载均衡
相当于把nginx做为入口服务器,后面均衡多台网站或业务服务器,把用户访问压力分散到多台服务器上
即使其中一台服务器宕机、不会影响网站正常运行
可以参考下实例:http://www.tocus.com.cn/?send=article_show&id=160&class=nginx还是挺牛b的

如何用nginx来代理tomcat


如图
upstream mysvr{
server  127.0.0.1:8082
ip_hash
}
server {
listen       8019
server_name  localhost
#charset koi8-r
#access_log  logs/host.access.log  main
location / {
proxy_pass http://mysvr/
proxy_redirect off
proxy_set_header Host $host
proxy_set_header      X-Real-IP $remote_addr
proxy_set_header      X-Forwarded-For $proxy_add_x_forwarded_for
root   /maps
index  index.html index.htm index.jsp
client_max_body_size    1000m
add_header Access-Control-Allow-Origin *
}
location ~ /.ht {
deny  all
}

最新文章