Openresty nginx抛出zlib找不到错误

时间:2018-06-06 10:18:01

标签: nginx lua gzip

我已经安装了openresty nginx服务器。这是我的配置文件:

http {
    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  /var/log/nginx/access.log  main;

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

    include /etc/nginx/conf.d/*.conf;

    # set search paths for pure Lua external libraries (';;' is the default path):
    lua_package_path '/usr/local/openresty/?.lua;/usr/local/openresty/lualib/?.lua;/usr/local/openresty/lualib/resty/?.lua;/usr/local/openresty/lualib/ngx/?.lua;/usr/local/openresty/site/lualib/?.lua;;';

    # set search paths for Lua external libraries written in C (can also use ';;'):
    lua_package_cpath '/usr/local/openresty/?.so;/usr/local/openresty/lualib/?.so;/usr/local/openresty/lualib/resty/?.so;/usr/local/openresty/lualib/ngx/?.so;/usr/local/openresty/site/lualib/?.so;;';

    server {
        listen 81;
        location / {
            proxy_pass http://localhost:4040;
            proxy_http_version 1.1;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $http_host;
            proxy_set_header X-Cluster-Client-Ip $remote_addr;
            proxy_pass_request_headers on;
            proxy_redirect off;

            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";

            # for deflate/uncompress request
            client_max_body_size 512k;
            client_body_buffer_size 512k;

            set $max_chunk_size 10240;
            set $max_body_size 524288;

            rewrite_by_lua_file /opt/se/nginx-scripts/inflate_body.lua;
        }
    }
}

此处的lua文件引用取自http://www.pataliebre.net/howto-make-nginx-decompress-a-gzipped-request.html,以支持在nginx端以gzip格式接受请求。

当我启动服务器时它启动但是以gzip格式发送请求会引发内部服务器错误,并显示以下错误:

  

/opt/se/nginx-scripts/inflate_body.lua:20:在功能' inflate_body'     /opt/se/nginx-scripts/inflate_body.lua:57:在功能上   ,客户:192.168.3.30,   server:,request:" POST / HTTP / 1.1",host:" 192.168.3.30:81"       2018/06/06 15:08:28 [错误] 36232#36232:* 1 lua入口线程中止:运行时错误:/opt/se/nginx-scripts/inflate_body.lua:20:   模块' zlib'找不到:没有字段package.preload [' zlib']没有文件   ' /usr/local/openresty/zlib.lua'没有文件   ' /usr/local/openresty/lualib/zlib.lua'没有文件   ' /usr/local/openresty/lualib/resty/zlib.lua'没有文件   ' /usr/local/openresty/lualib/ngx/zlib.lua'没有文件   ' /usr/local/openresty/site/lualib/zlib.lua'没有文件   ' /usr/local/openresty/site/lualib/zlib.ljbc'没有文件   ' /usr/local/openresty/site/lualib/zlib/init.ljbc'没有文件   ' /usr/local/openresty/lualib/zlib.ljbc'没有文件   ' /usr/local/openresty/lualib/zlib/init.ljbc'没有文件   ' /usr/local/openresty/site/lualib/zlib.lua'没有文件   ' /usr/local/openresty/site/lualib/zlib/init.lua'没有文件   ' /usr/local/openresty/lualib/zlib.lua'没有文件   ' /usr/local/openresty/lualib/zlib/init.lua'没有档案' ./ zlib.lua'没有   file' /usr/local/openresty/luajit/share/luajit-2.1.0-beta3/zlib.lua'     没有文件' /usr/local/share/lua/5.1/zlib.lua'没有文件   ' /usr/local/share/lua/5.1/zlib/init.lua'没有文件   ' /usr/local/openresty/luajit/share/lua/5.1/zlib.lua'没有文件   ' /usr/local/openresty/luajit/share/lua/5.1/zlib/init.lua'没有文件   ' /usr/local/openresty/zlib.so'没有文件   ' /usr/local/openresty/lualib/zlib.so'没有文件   ' /usr/local/openresty/lualib/resty/zlib.so'没有文件   ' /usr/local/openresty/lualib/ngx/zlib.so'没有文件   ' /usr/local/openresty/site/lualib/zlib.so'没有文件   ' /usr/local/openresty/site/lualib/zlib.so'没有文件   ' /usr/local/openresty/lualib/zlib.so'没有档案' ./ zlib.so'没有文件   ' /usr/local/lib/lua/5.1/zlib.so'没有文件   ' /usr/local/openresty/luajit/lib/lua/5.1/zlib.so'没有文件   ' /usr/local/lib/lua/5.1/loadall.so'

在互联网上阅读此问题后,我尝试手动设置lua_package_path和lua_package_cpath,但仍然没有帮助。我不确定应该采取什么其他措施来解决这个问题?

1 个答案:

答案 0 :(得分:0)

您的系统没有安装适当的zlib共享模块。

关于debian样式发行版,这对我有用:sudo apt-get install zlib1g

如果您还有别的东西找到合适的包裹。