宝塔nginx 1.14.2稳定版编译云锁


生产环境还是建议使用nginx 1.14.2版本,此版本为稳定版,内存也比1.15版本占用少


注意nginx一定要编译安装,不要选择快速安装否则无法编译成功!


首先先执行:

cd /www/server/nginx/sbin/

cp nginx nginx.bak

cd ~

/www/server/nginx/sbin/nginx -V (确认你的版本是1.14.2再进行下一步)

wget http://nginx.org/download/nginx-1.14.2.tar.gz

tar zxvf nginx-1.14.2.tar.gz

对于 nginx 来说,由于其不支持post过滤,所以需要修改nginx-1.14.2源码目录下的src/http/ngx_http_upstream.c 文件,步骤如下:

1、查找 static void ngx_http_upstream_init_request(ngx_http_request_t *r)函数,
在其所在行上方添加:

  int ngx_http_yunsuo_post_in_handler(ngx_http_request_t *r);

2、在ngx_http_upstream_init_request函数开头,变量声明后,添加:

  if(ngx_http_yunsuo_post_in_handler(r))
  {
      return;
  }

举个栗子:

修改前源码:

  static void
  ngx_http_upstream_init_request(ngx_http_request_t *r)
  {
      ngx_str_t                      *host;
      ngx_uint_t                      i;
      ngx_resolver_ctx_t             *ctx, temp;
      ngx_http_cleanup_t             *cln;
      ngx_http_upstream_t            *u;
      ngx_http_core_loc_conf_t       *clcf;
      ngx_http_upstream_srv_conf_t   *uscf, **uscfp;
      ngx_http_upstream_main_conf_t  *umcf;

      if (r->aio) {
          return;
      }

      u = r->upstream;
     
      ......
  }

修改后源码:

  /*这段是添加的*/
  int ngx_http_yunsuo_post_in_handler(ngx_http_request_t *r);
  /*------------*/

  static void
  ngx_http_upstream_init_request(ngx_http_request_t *r)
  {
      ngx_str_t                      *host;
      ngx_uint_t                      i;
      ngx_resolver_ctx_t             *ctx, temp;
      ngx_http_cleanup_t             *cln;
      ngx_http_upstream_t            *u;
      ngx_http_core_loc_conf_t       *clcf;
      ngx_http_upstream_srv_conf_t   *uscf, **uscfp;
      ngx_http_upstream_main_conf_t  *umcf;

      /*这段是添加的*/
      if(ngx_http_yunsuo_post_in_handler(r))
      {
          return;
      }
      /*------------*/
     
      if (r->aio) {
          return;
      }

      u = r->upstream;
     
      ......
     
  }

保存以上文件后接下来执行:

cd /root

wget https://codeload.github.com/yunsuo-open/nginx-plugin/zip/master -O nginx-plugin-master.zip

unzip nginx-plugin-master.zip

cd nginx-1.14.2

./configure --user=www --group=www --prefix=/www/server/nginx --with-openssl=/www/server/nginx/src/openssl --add-module=/www/server/nginx/src/ngx_devel_kit --add-module=/www/server/nginx/src/lua_nginx_module --add-module=/www/server/nginx/src/ngx_cache_purge --add-module=/www/server/nginx/src/nginx-sticky-module --add-module=/www/server/nginx/src/nginx-http-concat --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_image_filter_module --with-http_gzip_static_module --with-http_gunzip_module --with-stream --with-stream_ssl_module --with-ipv6 --with-http_sub_module --with-http_flv_module --with-http_addition_module --with-http_realip_module --with-http_mp4_module --with-ld-opt=-Wl,-E --with-pcre=/www/server/nginx/src/pcre-8.42 --with-cc-opt=-Wno-error --with-ld-opt=-ljemalloc --add-module=/root/nginx-plugin-master

make

rm -rf /www/server/nginx/sbin/nginx

cp objs/nginx /www/server/nginx/sbin/

service nginx restart


以上就是用最快速的方法自编译云锁的安全模块,make时间长短随机器的CPU性能判定务必耐心等待;安装后需要刷新PC端的控制台才可以正常显示自编译按钮。(如果已经开启web防护,需要先关闭后再刷新一次才能看见自编译功能开启)


注:在一些OVZ内核的机器上,CC防护没用,只有漏洞防护;CC防护只有借助带WAF的CDN或者Voxility、OVH、CeraNetworks等高防来防护。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

3 + 6 =