前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Openresty高性能网关反向代理配置攻略

Openresty高性能网关反向代理配置攻略

作者头像
Tinywan
发布2023-11-22 14:45:37
5550
发布2023-11-22 14:45:37
举报
文章被收录于专栏:开源技术小栈开源技术小栈

Openresty高性能网关反向代理配置攻略

介绍

反向代理就是当请求访问你的代理服务器时,代理服务器会对你的请求进行转发,可以转发到静态的资源路径上去,也可以转发到动态的服务接口上去。下面我们以对域名进行代理为例,来讲讲如何进行静态代理和动态代理。

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

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

「如下图所示:」

静态代理

静态代理就是将请求代理到不同的静态资源路径上去,这里我们将对docs.tinywan.com的请求代理到我的文档项目中,对mall.tinywan.com的请求代理到mall的前端项目中。

文档项目反向代理

docs.conf

代码语言:javascript
复制
server {
    listen       80;
    server_name  docs.tinywan.com; #修改域名

    location / {
        root   /usr/share/nginx/html/docs; #代理到docs文件夹中
        index  index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

通过docs.tinywan.com即可访问到我们的文档项目了

前端项目反向代理

mall.conf

代码语言:javascript
复制
server {
    listen       80;
    server_name  mall.tinywan.com; #修改域名

    location / {
        root   /usr/share/nginx/html/mall; #代理到mall文件夹中
        index  index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

通过mall.tinywan.com即可访问到mall的前端项目了

动态代理

动态代理就是把代理服务器的请求转发到另一个服务上去,这里我们将对api.tinywan.com的请求代理到mall-admin的后台服务上去。

API接口动态代理(Java)

api.conf

代码语言:javascript
复制
server {
    listen       80;
    server_name  api.tinywan.com; #修改域名

    location / {
     proxy_pass   http://120.27.63.9:8080; #修改为代理服务地址
        index  index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

重启动nginx服务后,通过api.tinywan.com/swagger-ui.html即可访问到mall-admin的API文档页面了

API接口动态代理(PHP)

api.conf

代码语言:javascript
复制
server {
  listen       80;
  server_name  api.tinywan.com; #修改域名
  
 set $root_path /home/www/web/api.tinywan.com/public; #修改项目路径
  root $root_path;
  location / {
    if (!-e $request_filename) {
      rewrite ^(.*)$ /index.php?s=/$1 last;
      break;
    }
  }

  location ~ \.php$ {
    fastcgi_pass unix:/var/run/php-fpm.sock; # 基于Socket 的TCP 代理
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    fastcgi_buffer_size 128k;
    fastcgi_buffers 4 256k;
    fastcgi_busy_buffers_size 256k;
  }
}
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-11-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 开源技术小栈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
  • 静态代理
    • 文档项目反向代理
      • 前端项目反向代理
      • 动态代理
        • API接口动态代理(Java)
          • API接口动态代理(PHP)
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档