Openresty 反向代理 api服务

什么是反向代理

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

举个例子,一个用户访问 www.example.com/readme,可是 www.example.com 上并不存在 readme 页面,它是偷偷从另一台服务器上取回来,而后做为本身的内容返回给用户。可是用户并不知情这个过程。对用户来讲,就像是直接从 www.example.com 获取 readme 页面同样。这里所提到的 www.example.com 这个域名对应的服务器就设置了反向代理功能。web

反向代理服务器,对于客户端而言它就像是原始服务器,而且客户端不须要进行任何特别的设置。客户端向反向代理的命名空间(name-space)中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求,并将得到的内容返回给客户端,就像这些内容本来就是它本身的同样。以下图所示:django

反向代理典型应用场景

反向代理的典型用途是将防火墙后面的服务器提供给 Internet 用户访问,增强安全防御。反向代理还能够为后端的多台服务器提供负载均衡,或为后端较慢的服务器提供 缓冲 服务。另外,反向代理还能够启用高级 URL 策略和管理技术,从而使处于不一样 web 服务器系统的 web 页面同时存在于同一个 URL 空间下。后端

Nginx 的其中一个用途是作 HTTP 反向代理,下面简单介绍 Nginx 做为反向代理服务器的方法。api

使用nginx反向代理django的api请求安全

配置文件nginx.conf服务器

worker_processes  1;
error_log logs/error.log;
events {
    worker_connections 1024;
}
http {

    server_tokens off;
    
    # 配置反向代理,将访问 / 的url路径,反向请求至http://192.168.43.128:8000
    server {
        listen 8080;
        location / {
            proxy_pass  http://192.168.43.128:8000;
            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;
        }
    }
}
复制代码

测试以下:网络

  • 首先直接访问django的api服务,以下:

能够看到请求8000端口号正常。负载均衡

  • 如今访问nginx的8080端口服务,查看是否访问正常,以下:

能够看到访问是正常返回结果的。说明nginx反向代理成功。测试

相关文章
相关标签/搜索