I. 主理人说
via https://gtmetrix.com/reports/limbopro.xyz/KSre06ep
II. 前提说明
0.服务器系统为 Ubuntu;
1.已顺利迁移;
2.已加装WAF:https://github.com/loveshell/ngx_lua_waf
3.大家可以强制刷新本站,狂按F5试试;
以上。
III. OpenResty®介绍
OpenResty - Turning Nginx into a Full-Fledged Scriptable Web Platform;
OpenResty® 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。
OpenResty® 通过汇聚各种设计精良的 Nginx 模块(主要由 OpenResty 团队自主开发),从而将 Nginx 有效地变成一个强大的通用 Web 应用平台。这样,Web 开发人员和系统工程师可以使用 Lua 脚本语言调动 Nginx 支持的各种 C 以及 Lua 模块,快速构造出足以胜任 10K 乃至 1000K 以上单机并发连接的高性能 Web 应用系统。
OpenResty® 的目标是让你的Web服务直接跑在 Nginx 服务内部,充分利用 Nginx 的非阻塞 I/O 模型,不仅仅对 HTTP 客户端请求,甚至于对远程后端诸如 MySQL、PostgreSQL、Memcached 以及 Redis 等都进行一致的高性能响应。
参考 组件 可以知道 OpenResty® 中包含了多少软件。
参考 上路 学习如何从最简单的 hello world 开始使用 OpenResty® 开发 HTTP 业务,或前往 下载 直接获取 OpenResty® 的源代码包开始体验。
IV. 安装概要说明
1.首先你得知道正在使用的 Nginx 版本及其已安装模块(有些模块是默认安装的,有些是第三方模块,有些是可选安装模块);
2.进行 configure,设置你的安装路径以及需要额外要安装或不要安装的模块;
3.make,编译;
4.make install,将编译好的文件从 /opt 文件夹复制到之前设置的安装路径(或默认路径);
V. 查看已安装模块
/usr/local/nginx/sbin/nginx -V 2>&1 | tr -- - '\n' | grep _module
nginx 位置根据你的实际情况更换;此命令是用以查看当前使用的nginx版本的非默认安装模块(额外安装的自选安装模块、以及第三方模块等);
# 以下部分模块是博主出于分析恶意IP而额外选装的(获取CDN下用户真实IP)。
$/usr/local/nginx/sbin/nginx -V 2>&1 | tr -- - '\n' | grep _module #非默认安装的模块
http_stub_status_module
http_v2_module #HTTP V2
http_realip_module
http_sub_module
http_geoip_module # 用以拦截来自某区域的IP
http_gzip_static_module
stream_ssl_module
stream_ssl_preread_module
http_ssl_module
VI. 编译及安装
可参考官方说明:安装 或参考下文(如果你是升级或迁移覆盖安装 Openresty);
替换安装:如果你先前已经安装了 nginx,替换nginx文件即可;nginx文件一般位于:/usr/local/nginx/sbin/nginx
,你可以选择覆盖安装Openrestry
;
$ cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak #备份nginx文件
$ tar -xzvf openresty-VERSION.tar.gz #下载最新oprenresty源码
$ cd openresty-VERSION/ #进入openresty源码目录
## 以下三种方法选最后一种
$ ./configure --prefix=/usr/local/openresty #预设安装路径
$ ./configure #纯默认编译,无预设路径编译
$ ./configure --prefix=/usr/local/openresty/ --with-http_stub_status_module --with-luajit --with-http_iconv_module --with-http_postgres_module --with-stream --with-http_v2_module --with-http_realip_module --with-http_sub_module --with-http_geoip_module --with-http_gzip_static_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-http_ssl_module
# 以上 --with-http_stub_status_module 由查看已安装模块这个步骤得来;
$ make #./configure 后需要进行编译
$ sudo make install #安装
知识点
在 Openresty 安装中,./configure
中 --with 前缀开头的为可选安装包
,其余默认安装包
,安装时使用 --with-模块名称安装
;--without
则相反(就是本来要默认安装的模块,你用--without
后它就不安装了);
使用 ./configure --help
查看更多的模块选择;
$ ./configure --help
--help this message
--prefix=PATH set the installation prefix (default to /usr/local/openresty)
--with-debug enable debug logging
--with-no-pool-patch enable the no-pool patch for debugging memory issues
-jN pass -jN option to make while building LuaJIT 2.1
--without-http_echo_module disable ngx_http_echo_module
--without-http_xss_module disable ngx_http_xss_module
--without-http_coolkit_module disable ngx_http_coolkit_module
--without-http_set_misc_module disable ngx_http_set_misc_module
--without-http_form_input_module disable ngx_http_form_input_module
--without-http_encrypted_session_module
disable ngx_http_encrypted_session_module
--without-http_srcache_module disable ngx_http_srcache_module
--without-http_lua_module disable ngx_http_lua_module
--without-http_lua_upstream_module disable ngx_http_lua_upstream_module
--without-http_headers_more_module disable ngx_http_headers_more_module
--without-http_array_var_module disable ngx_http_array_var_module
--without-http_memc_module disable ngx_http_memc_module
--without-http_redis2_module disable ngx_http_redis2_module
--without-http_redis_module disable ngx_http_redis_module
--without-http_rds_json_module disable ngx_http_rds_json_module
--without-http_rds_csv_module disable ngx_http_rds_csv_module
--without-stream_lua_module disable ngx_stream_lua_module
--without-ngx_devel_kit_module disable ngx_devel_kit_module
--without-stream disable TCP/UDP proxy module
--without-http_ssl_module disable ngx_http_ssl_module
--without-stream_ssl_module disable ngx_stream_ssl_module
--with-http_iconv_module enable ngx_http_iconv_module
--with-http_drizzle_module enable ngx_http_drizzle_module
--with-http_postgres_module enable ngx_http_postgres_module
--without-lua_cjson disable the lua-cjson library
--without-lua_tablepool disable the lua-tablepool library (and by consequence, the
lua-resty-shell library)
--without-lua_redis_parser disable the lua-redis-parser library
--without-lua_rds_parser disable the lua-rds-parser library
--without-lua_resty_dns disable the lua-resty-dns library
--without-lua_resty_memcached disable the lua-resty-memcached library
--without-lua_resty_redis disable the lua-resty-redis library
--without-lua_resty_mysql disable the lua-resty-mysql library
--without-lua_resty_upload disable the lua-resty-upload library
--without-lua_resty_upstream_healthcheck
disable the lua-resty-upstream-healthcheck library
--without-lua_resty_string disable the lua-resty-string library
--without-lua_resty_websocket disable the lua-resty-websocket library
--without-lua_resty_limit_traffic disable the lua-resty-limit-traffic library
--without-lua_resty_lock disable the lua-resty-lock library
--without-lua_resty_lrucache disable the lua-resty-lrucache library
--without-lua_resty_signal disable the lua-resty-signal library (and by consequence,
the lua-resty-shell library)
--without-lua_resty_shell disable the lua-resty-shell library
--without-lua_resty_core disable the lua-resty-core library
--with-luajit=DIR use the external LuaJIT 2.1 installation specified by DIR
--with-luajit-xcflags=FLAGS Specify extra C compiler flags for LuaJIT 2.1
--with-luajit-ldflags=FLAGS Specify extra C linker flags for LuaJIT 2.1
--without-luajit-lua52 Turns off the LuaJIT extensions from Lua 5.2 that may break
backward compatibility
--without-luajit-gc64 Turns off the LuaJIT GC64 mode (which is enabled by default
on x86_64)
--with-libdrizzle=DIR specify the libdrizzle 1.0 (or drizzle) installation prefix
--with-libpq=DIR specify the libpq (or postgresql) installation prefix
--with-pg_config=PATH specify the path of the pg_config utility
Options directly inherited from nginx
--sbin-path=PATH set nginx binary pathname
--modules-path=PATH set modules path
--conf-path=PATH set nginx.conf pathname
--error-log-path=PATH set error log pathname
--pid-path=PATH set nginx.pid pathname
--lock-path=PATH set nginx.lock pathname
--user=USER set non-privileged user for
worker processes
--group=GROUP set non-privileged group for
worker processes
--build=NAME set build name
--builddir=DIR set build directory
--with-select_module enable select module
--without-select_module disable select module
--with-poll_module enable poll module
--without-poll_module disable poll module
--with-threads enable thread pool support
--with-file-aio enable file AIO support
--with-http_ssl_module enable ngx_http_ssl_module (default on)
--with-http_v2_module enable ngx_http_v2_module
--with-http_realip_module enable ngx_http_realip_module
--with-http_addition_module enable ngx_http_addition_module
--with-http_xslt_module enable ngx_http_xslt_module
--with-http_xslt_module=dynamic enable dynamic ngx_http_xslt_module
--with-http_image_filter_module enable ngx_http_image_filter_module
--with-http_image_filter_module=dynamic
enable dynamic ngx_http_image_filter_module
--with-http_geoip_module enable ngx_http_geoip_module
--with-http_geoip_module=dynamic enable dynamic ngx_http_geoip_module
--with-http_sub_module enable ngx_http_sub_module
--with-http_dav_module enable ngx_http_dav_module
--with-http_flv_module enable ngx_http_flv_module
--with-http_mp4_module enable ngx_http_mp4_module
--with-http_gunzip_module enable ngx_http_gunzip_module
--with-http_gzip_static_module enable ngx_http_gzip_static_module
--with-http_auth_request_module enable ngx_http_auth_request_module
--with-http_random_index_module enable ngx_http_random_index_module
--with-http_secure_link_module enable ngx_http_secure_link_module
--with-http_degradation_module enable ngx_http_degradation_module
--with-http_slice_module enable ngx_http_slice_module
--with-http_stub_status_module enable ngx_http_stub_status_module
--without-http_charset_module disable ngx_http_charset_module
--without-http_gzip_module disable ngx_http_gzip_module
--without-http_ssi_module disable ngx_http_ssi_module
--without-http_userid_module disable ngx_http_userid_module
--without-http_access_module disable ngx_http_access_module
--without-http_auth_basic_module disable ngx_http_auth_basic_module
--without-http_mirror_module disable ngx_http_mirror_module
--without-http_autoindex_module disable ngx_http_autoindex_module
--without-http_geo_module disable ngx_http_geo_module
--without-http_map_module disable ngx_http_map_module
--without-http_split_clients_module disable ngx_http_split_clients_module
--without-http_referer_module disable ngx_http_referer_module
--without-http_rewrite_module disable ngx_http_rewrite_module
--without-http_proxy_module disable ngx_http_proxy_module
--without-http_fastcgi_module disable ngx_http_fastcgi_module
--without-http_uwsgi_module disable ngx_http_uwsgi_module
--without-http_scgi_module disable ngx_http_scgi_module
--without-http_grpc_module disable ngx_http_grpc_module
--without-http_memcached_module disable ngx_http_memcached_module
--without-http_limit_conn_module disable ngx_http_limit_conn_module
--without-http_limit_req_module disable ngx_http_limit_req_module
--without-http_empty_gif_module disable ngx_http_empty_gif_module
--without-http_browser_module disable ngx_http_browser_module
--without-http_upstream_hash_module
disable ngx_http_upstream_hash_module
--without-http_upstream_ip_hash_module
disable ngx_http_upstream_ip_hash_module
--without-http_upstream_least_conn_module
disable ngx_http_upstream_least_conn_module
--without-http_upstream_random_module
disable ngx_http_upstream_random_module
--without-http_upstream_keepalive_module
disable ngx_http_upstream_keepalive_module
--without-http_upstream_zone_module
disable ngx_http_upstream_zone_module
--with-http_perl_module enable ngx_http_perl_module
--with-http_perl_module=dynamic enable dynamic ngx_http_perl_module
--with-perl_modules_path=PATH set Perl modules path
--with-perl=PATH set perl binary pathname
--http-log-path=PATH set http access log pathname
--http-client-body-temp-path=PATH set path to store
http client request body temporary files
--http-proxy-temp-path=PATH set path to store
http proxy temporary files
--http-fastcgi-temp-path=PATH set path to store
http fastcgi temporary files
--http-uwsgi-temp-path=PATH set path to store
http uwsgi temporary files
--http-scgi-temp-path=PATH set path to store
http scgi temporary files
--without-http disable HTTP server
--without-http-cache disable HTTP cache
--with-mail enable POP3/IMAP4/SMTP proxy module
--with-mail=dynamic enable dynamic POP3/IMAP4/SMTP proxy module
--with-mail_ssl_module enable ngx_mail_ssl_module
--without-mail_pop3_module disable ngx_mail_pop3_module
--without-mail_imap_module disable ngx_mail_imap_module
--without-mail_smtp_module disable ngx_mail_smtp_module
--with-stream enable TCP/UDP proxy module (default on)
--with-stream=dynamic enable dynamic TCP/UDP proxy module
--with-stream_ssl_module enable ngx_stream_ssl_module (default on)
--with-stream_realip_module enable ngx_stream_realip_module
--with-stream_geoip_module enable ngx_stream_geoip_module
--with-stream_geoip_module=dynamic enable dynamic ngx_stream_geoip_module
--with-stream_ssl_preread_module enable ngx_stream_ssl_preread_module
--without-stream_limit_conn_module disable ngx_stream_limit_conn_module
--without-stream_access_module disable ngx_stream_access_module
--without-stream_geo_module disable ngx_stream_geo_module
--without-stream_map_module disable ngx_stream_map_module
--without-stream_split_clients_module
disable ngx_stream_split_clients_module
--without-stream_return_module disable ngx_stream_return_module
--without-stream_upstream_hash_module
disable ngx_stream_upstream_hash_module
--without-stream_upstream_least_conn_module
disable ngx_stream_upstream_least_conn_module
--without-stream_upstream_random_module
disable ngx_stream_upstream_random_module
--without-stream_upstream_zone_module
disable ngx_stream_upstream_zone_module
--with-google_perftools_module enable ngx_google_perftools_module
--with-cpp_test_module enable ngx_cpp_test_module
--add-module=PATH enable external module
--add-dynamic-module=PATH enable dynamic external module
--with-compat dynamic modules compatibility
--with-cc=PATH set C compiler pathname
--with-cpp=PATH set C preprocessor pathname
--with-cc-opt=OPTIONS set additional C compiler options
--with-ld-opt=OPTIONS set additional linker options
--with-cpu-opt=CPU build for the specified CPU, valid values:
pentium, pentiumpro, pentium3, pentium4,
athlon, opteron, sparc32, sparc64, ppc64
--without-pcre disable PCRE library usage
--with-pcre force PCRE library usage
--with-pcre=DIR set path to PCRE library sources
--with-pcre-opt=OPTIONS set additional build options for PCRE
--with-pcre-jit build PCRE with JIT compilation support
--with-zlib=DIR set path to zlib library sources
--with-zlib-opt=OPTIONS set additional build options for zlib
--with-zlib-asm=CPU use zlib assembler sources optimized
for the specified CPU, valid values:
pentium, pentiumpro
--with-libatomic force libatomic_ops library usage
--with-libatomic=DIR set path to libatomic_ops library sources
--with-openssl=DIR set path to OpenSSL library sources
--with-openssl-opt=OPTIONS set additional build options for OpenSSL
--dry-run dry running the configure, for testing only
--platform=PLATFORM forcibly specify a platform name, for testing only
configure 是一个shell脚本,它可以自动设定源程序以符合各种不同平台上Unix系统的特性,并且根据系统叁数及环境产生合适的Makefile文件(./configure
这一步完成后即会在源码目录下生成一个 Makefile
文件 )或是C的头文件(header file),让源程序可以很方便地在这些不同的平台上被编译连接。
make 是用来编译的,它从Makefile中读取指令,然后编译。
make install 是用来安装的,它也从Makefile中读取指令,安装到指定的位置。
如果您还没有下载 OpenResty 的源码包, 请到 Download 页下载。
VII. 官方附录
首先,您可以根据下面的示例安装和构建OpenResty。
bash 默认安装
$ tar -xzvf openresty-VERSION.tar.gz
$ cd openresty-VERSION/
$ ./configure
$ make
$ sudo make install
示例中的 VERSION
替换成 OpenResty的版本号, 比如 1.11.2.1
。 如果您在构建过程中需要对于细节更加灵活的控制,请您继续阅读。
参考:Openresty安装
版权属于:毒奶
联系我们:https://limbopro.xyz/6.html
毒奶搜索:https://limbopro.xyz/search.html
毒奶导航:https://limbopro.xyz/daohang/index.html本文链接:https://limbopro.xyz/archives/7167.html
本文采用 CC BY-NC-SA 4.0 许可协议,转载或引用本文时请遵守许可协议,注明出处、不得用于商业用途!