https://www.cnblogs.com/wazy/p/8108824.html
./configure --user=www #worker进程运行用户 --group=www #worker进程运行的组 --prefix=/usr/ #Nginx安装的根路径,所有其他的路径都要依赖于改选项 --conf-path=/etc/nginx/nginx.conf #如果在命令行没有指定配置文件,那么将会通过这里指定的路径,Nginx将会去那里查找它的配置文件 --sbin-path=/usr/sbin/nginx #指定Nginx二进制文件的路径。如果没有指定,那么这个路径会依赖于--prefix选项 --error-log-path=/var/log/nginx/nginx_error.log #指定错误文件的路径,Nginx将会往其中写入错误日志文件,除非有其他配置 --http-log-path=/var/log/nginx/nginx_access.log #http访问日志的默认路径 --pid-path=/usr/local/nginx/run/nginx.pid #指定的文件将会写入Nginx master进程的pid,通常在/var/run下 --lock-path=/usr/local/nginx/lock/nginx #共享存储器互斥锁文件的路径 --with-http_ssl_module #启用 ngx_http_ssl_module 支持(使支持 https 请求,需已安装openssl) --with-http_realip_module #启用 ngx_http_realip_module 支持(这个模块允许从请求标头更改客户端的 IP 地址值,默认为关) --with-http_addition_module #启用 ngx_http_addition_module 支持(作为一个输出过滤器,支持不完全缓冲,分部分响应请求) --with-http_sub_module #启用 ngx_http_sub_module 支持(允许用一些其他文本替换nginx 响应中的一些文本) --with-http_dav_module #启用ngx_http_dav_module支持(增加PUT,DELETE,MKCOL:创建集合,COPY 和 MOVE 方法)默认情况下为关闭,需编译开启 --with-http_flv_module #启用 ngx_http_flv_module 支持(提供寻求内存使用基于时间的偏移量文件) --with-http_gzip_static_module #启用 ngx_http_gzip_static_module 支持(在线实时压缩输出数据流) --with-http_stub_status_module #启用ngx_http_stub_status_module支持(获取nginx自上次启动以来的工作状态) --with-http_perl_module #Nginx配置能够扩展使用Perl代码。这个选项启用这个模块(然而使用这个模块会降低性能) --with-mail #该选项用于启用mail模块,该模块默认没有被激活 --with-mail_ssl_module #为了代理任何一种类型的使用SSL/TLS的mail,激活该模块 --with-pcre --http-client-body-temp-path=/var/tmp/nginx/client/ #从客户端收到请求后,该选项设置的目录用于作为请求体零食存放的目录,如果WebDAV模块启用,那么推荐设置该路径为同一文件系统上的目录作为最终的目的地 --http-proxy-temp-path=/var/tmp/nginx/proxy #在使用代理后,通过该选项设置存放临时文件路径 --http-fastcgi-temp-path=/var/tmp/nginx/fcgi #设置FastCGI临时文件的目录 --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi #设置uWSGI临时文件的目录 --http-scgi-temp-path=/var/tmp/nginx/scgi #设置SCGI临时文件的目录 ./configure --user=www --group=www --prefix=/usr/ --conf-path=/etc/nginx/nginx.conf --sbin-path=/usr/sbin/nginx --error-log-path=/var/log/nginx/nginx_error.log --http-log-path=/var/log/nginx/nginx_access.log --pid-path=/usr/local/nginx/run/nginx.pid --lock-path=/usr/local/nginx/lock/nginx --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_gzip_static_module --with-http_stub_status_module --with-http_perl_module --with-mail --with-mail_ssl_module --with-pcre --http-client-body-temp-path=/var/tmp/nginx/client/ --http-proxy-temp-path=/var/tmp/nginx/proxy --http-fastcgi-temp-path=/var/tmp/nginx/fcgi --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi --http-scgi-temp-path=/var/tmp/nginx/scgi
2.nginx编译选项 make是用来编译的,它从Makefile中读取指令,然后编译。 make install是用来安装的,它也从Makefile中读取指令,安装到指定的位置。 configure命令是用来检测你的安装平台的目标特征的。它定义了系统的各个方面,包括nginx的被允许使用的连接处理的方法,比如它会检测你是不是有CC或GCC,并不是需要CC或GCC,它是个shell脚本,执行结束时,它会创建一个Makefile文件。nginx的configure命令支持以下参数: --prefix=path 定义一个目录,存放服务器上的文件 ,也就是nginx的安装目录。默认使用 /usr/local/nginx。 --sbin-path=path 设置nginx的可执行文件的路径,默认为 prefix/sbin/nginx. --conf-path=path 设置在nginx.conf配置文件的路径。nginx允许使用不同的配置文件启动,通过命令行中的-c选项。默认为prefix/conf/nginx.conf. --pid-path=path 设置nginx.pid文件,将存储的主进程的进程号。安装完成后,可以随时改变的文件名 , 在nginx.conf配置文件中使用 PID指令。默认情况下,文件名 为prefix/logs/nginx.pid. --error-log-path=path 设置主错误,警告,和诊断文件的名称。安装完成后,可以随时改变的文件名 ,在nginx.conf配置文件中 使用 的error_log指令。默认情况下,文件名 为prefix/logs/error.log. --http-log-path=path 设置主请求的HTTP服务器的日志文件的名称。安装完成后,可以随时改变的文件名 ,在nginx.conf配置文件中 使用 的access_log指令。默认情况下,文件名 为prefix/logs/access.log. --user=name 设置nginx工作进程的用户。安装完成后,可以随时更改的名称在nginx.conf配置文件中 使用的 user指令。默认的用户名是nobody。 --group=name 设置nginx工作进程的用户组。安装完成后,可以随时更改的名称在nginx.conf配置文件中 使用的 user指令。默认的为非特权用户。 --with-select_module --without-select_module 启用或禁用构建一个模块来允许服务器使用select()方法。该模块将自动建立,如果平台不支持的kqueue,epoll,rtsig或/dev/poll。 --with-poll_module --without-poll_module 启用或禁用构建一个模块来允许服务器使用poll()方法。该模块将自动建立,如果平台不支持的kqueue,epoll,rtsig或/dev/poll。 --without-http_gzip_module — 不编译压缩的HTTP服务器的响应模块。编译并运行此模块需要zlib库。 --without-http_rewrite_module 不编译重写模块。编译并运行此模块需要PCRE库支持。 --without-http_proxy_module — 不编译http_proxy模块。 --with-http_ssl_module — 使用https协议模块。默认情况下,该模块没有被构建。建立并运行此模块的OpenSSL库是必需的。 --with-pcre=path — 设置PCRE库的源码路径。PCRE库的源码(版本4.4 - 8.30)需要从PCRE网站下载并解压。其余的工作是Nginx的./ configure和make来完成。正则表达式使用在location指令和 ngx_http_rewrite_module 模块中。 --with-pcre-jit —编译PCRE包含“just-in-time compilation”(1.1.12中, pcre_jit指令)。 --with-zlib=path —设置的zlib库的源码路径。要下载从 zlib(版本1.1.3 - 1.2.5)的并解压。其余的工作是Nginx的./ configure和make完成。ngx_http_gzip_module模块需要使用zlib 。 --with-cc-opt=parameters — 设置额外的参数将被添加到CFLAGS变量。例如,当你在FreeBSD上使用PCRE库时需要使用:--with-cc-opt="-I /usr/local/include。.如需要需要增加 select()支持的文件数量:--with-cc-opt="-D FD_SETSIZE=2048". --with-ld-opt=parameters —设置附加的参数,将用于在链接期间。例如,当在FreeBSD下使用该系统的PCRE库,应指定:--with-ld-opt="-L /usr/local/lib".
1、运行环境包
yum -y install gcc gcc-c++ make libtool zlib zlib-devel openssl openssl-devel pcre pcre-devel lua-devel perl
2、额外的软件包
LuaJit: http://luajit.org/download.html
ningx: https://nginx.org/download/nginx-1.14.2.tar.gz
pcre: https://ftp.pcre.org/pub/pcre/pcre-8.42.zip
ngx_devel_kit: https://github.com/simplresty/ngx_devel_kit/tags
lua-nginx-module https://github.com/openresty/lua-nginx-module/tags
wget https://github.com/openresty/lua-nginx-module/archive/v0.10.14rc3.tar.gz --no-check-certificate
wget http://ftp.17gogoing.com:8852/pub/nginx/nginx_upstream_check_module-master.tar.gz —— 检查后端服务器的状态
nginx_goodies: https://bitbucket.org/nginx-goodies/nginx-sticky-module-ng/downloads/?tab=downloads 下载地址 —— 后端做负载均衡解决session sticky问题
注释:所有的软件包均下载到/usr/local/src目录下
百度云链接地址:
3、安装编译
cd /usr/local/src/nginx-1.14.2
patch -p1 < /usr/local/src/nginx_upstream_check_module-master/check_1.12.1+.patch
#编译参数如下:
./configure
--user=nginx
--group=nginx
--prefix=/usr/local/nginx
--sbin-path=/usr/sbin/nginx
--conf-path=/etc/nginx/nginx.conf
--error-log-path=/var/log/nginx/error.log
--pid-path=/var/log/nginx/nginx.pid
--lock-path=/usr/local/nginx/lock/nginx.lock
--http-log-path=/var/log/nginx/access.log
--with-openssl=/usr/local/src/openssl-1.0.2k
--with-http_ssl_module
--with-http_flv_module
--with-http_mp4_module
--http-proxy-temp-path=/usr/local/nginx/proxy_tmp
--with-http_stub_status_module
--with-http_gzip_static_module
--with-pcre=/usr/local/src/pcre-8.42
--add-module=/usr/local/src/ngx_devel_kit-0.3.0
--add-module=/usr/local/src/lua-nginx-module-master
--add-module=/usr/local/src/nginx_upstream_check_module-master
make -j 4 && make install