OpenResty 反代理项目分享[严禁转载]

第三方模块,以及它们的大多数依赖项。

通过众多进行良好设计的 Nginx 模块,OpenResty 有效地把 Nginx 服务器转变为一个强大的 Web 应用服务器,基于它开发人员可以使用 Lua 编程语言对 Nginx 核心以及现有的各种 Nginx C 模块进行脚本编程,构建出可以处理一万以上并发请求的极端高性能的 Web应用。

OpenResty 致力于将你的服务器端应用完全运行于 Nginx 服务器中,充分利用 Nginx 的事件模型来进行非阻塞 I/O 通信。不仅仅是和 HTTP 客户端间的网络通信是非阻塞的,与MySQL、PostgreSQL、Memcached、以及 Redis 等众多远方后端之间的网络通信也是非阻塞的。

因为 OpenResty 软件包的维护者也是其中打包的许多 Nginx 模块的作者,所以 OpenResty 可以确保所包含的所有组件可以可靠地协同工作。


注意事项:

为了解决内网域与外网域之间的访问安全,在外网域新增代理内网域应用。由于程序是二进制包进行安装,很多应用需要使用过gzip,需要确认一下代理是否需要支持gzip(第三方模块包), OpenResty是一个非常小众的开源项目

 

  1. 对gzip的支持不好,要不就是不使用压缩,要不就是需要解压,效率较低
  2. 没有使用缓存,请求频繁、并发量大的情况下openresty可能被上游服务器封掉。
  3. 后端没有进行负债均衡

 

 

操作系统版本:


实施说明:


1、openresty最新版

最新版  ngx_openresty-1.9.3.1.tar.gz   发布时间 2015年8月12日

最新稳定版:  ngx_openresty-1.7.10.2.tar.gz   发布时间 2015年(建议安装版本)


2、安装要求:


linux 必须将这些库 perl 5.6.1+, libreadline,libpcre, libssl安装

3、安装方法
解压:
#tar xzvf ngx_openresty-VERSION.tar.gz
#./configure

默认, --prefix=/usr/local/openresty 程序会被安装到/usr/local/openresty目录。

可以指定各种选项,比如编译环境:

./configure  --prefix=/4AR/openresty --with-luajit --without-http_redis2_module  --with-http_iconv_module  --without-http_gzip_module --with-pcre=/4AR/pcre-8.36 --with-openssl=/4AR/openssl-1.0.1e 

 

注:pcre-8.36openssl-1.0.1e 软件包不需要安装,只需要将原安装二进程包指定上目录及可,否侧将出现大量的类异常,无法找到。


可以使用下面的命令来编译:
gmake

如果前面的步骤都没有问题的话,可以使用下面的命令安装

make install

 

 

代理配置测试:

 

注意:Nginx中间件是跟据进程来提高并发量的,建议跟据CPU的内核数配置线程数。另代理配置参数很多,需要跟据业务应用进行相应的配置优化做参数调整,对业务比较有影响的是cookie应该如何设置保证会话不异常或者丢失。

 

以下是核心配置参数:

代理多节点配置主体如下:

============================
http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user[$time_local] "$request" '
   #                 '$status $body_bytes_sent "$http_referer" '
   #                 '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;
    upstream proxytext{    

  server 10.0.2.15:7001;
  server  10.0.2.15:7002 ;
}
#可以同时代理一台或者多台后台主机应用,可以配置权重
   sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
       listen       80;
        server_name  proxytest;

        #charset koi8-r;

        #access_log logs/host.access.log  main;

       location / {
    proxy_pass       http://proxytes;
    proxy_set_header  Host            $host;
    proxy_set_header  X-Real-IP        $remote_addr;
    proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
    }

  
       #error_page 404             /404.html;

        # redirect server error pages to thestatic page /50x.html
        #
        error_page   500 502 503504  /50x.html;
        location = /50x.html {
           root   html;
        }

==============================================================

 

代理单节点配置如下:
server {
       listen       80;
        server_name  proxytest;
        index  index.html index.htmindex.php index.jsp  defautl.php;
        #charset koi8-r;

        #access_log logs/host.access.log  main;

        location / {
        proxy_pass 
http://10.0.2.15:7001;  被代理主机
        proxy_cookie
_domain10.0.2.15:7001  10.0.2.15;  替换cookie中的主机头
        proxy_buffering off;               关闭缓存
        proxy_set_header X-Real-IP$remote_addr;
        proxy_set_header User-Agent$http_user_agent;
        proxy_set_header refere      "http://10.0.2.15:7001$request_uri";   //请求返回给原主机
        }

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值