Nginx 反向代理配置

正向代理和反向代理

(来自https://www.cnblogs.com/puls/p/8634505.html)

  • 正向代理

正向代理是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。

举例:

在公司中,A的电脑开通了访问数据库的防火墙,B的电脑并没有开通.B如何去访问数据库?我们可以在A的电脑上使用代理工具,配置好IP和端口,然后B通过连接A的IP/端口,A代替B来连接数据库.A就相当于一个代理.

  • 反向代理

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

反向代理隐藏了真正的服务端,就像你每天使用百度的时候,只知道敲打www.baidu.com就可以打开百度搜索页面,但背后成千上万台百度服务器具体是哪一台为我们服务的,我们并不知道。我们只知道这个代理服务器,它会把我们的请求转发到真实为我们服务的那台服务器那里去。

软件层面一般常用Nginx来做反向代理服务器,它的性能非常好,用来做负载均衡。

反向代理配置

使用tomcat作为服务器,先执行tomcat的配置和启动.

启动服务后,能够正常访问三个端口,看到三只tomcat.

然后对nginx配置反向代理.

这里我在另外目录下增加了一个配置文件,在nginx原本配置文件中引用它.

include path/*.conf;

引用的配置文件中的内容:

server {
    listen [info]10612[/info];
    #server_name api.service.com;
        #图片路径拦截,定位到图片静态资源
        location ~ /upload/.*$ {
            root /www/resources/;
            expires 30d;
        }
    location / {
        #跳转到指点tomcat服务器
    proxy_pass http://localhost:10611;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header REMOTE-HOST $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}
server {
    listen [success]10623[/success];
    #server_name api.service.com;
        #图片路径拦截,定位到图片静态资源
        location ~ /upload/.*$ {
            root /www/resources/;
            expires 30d;
        }
    location / {
        #跳转到指点tomcat服务器
    proxy_pass http://localhost:10622;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header REMOTE-HOST $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}
server {
    listen [success]10634[/success];
    #server_name api.service.com;
        #图片路径拦截,定位到图片静态资源
        location ~ /upload/.*$ {
            root /www/resources/;
            expires 30d;
        }
    location / {
        #跳转到指点tomcat服务器
    proxy_pass http://localhost:10633;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header REMOTE-HOST $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

 

重启nginx,可以通过访问监听的端口,从而访问被代理的服务器地址

posted @ 2021-04-30 16:06  Monstro  阅读(339)  评论(0编辑  收藏  举报