一, nginx 的编译安装:
1. 下载源码包
wget -c https://nginx.org/download/nginx-1.9.6.tar.gz
2. 解压缩源码
tar -zxvf nginx-1.9.6.tar.gz
3. 配置, 编译安装 开启 nginx 状态监测功能
- ./configure --prefix=/opt/nginx/ --with-http_ssl_module --with-http_stub_status_module
- make && make install
4. 启动 nginx, 进入 sbin 目录, 找到 nginx 启动命令
- cd sbin
- ./nginx #启动
- ./nginx -s stop #关闭
- ./nginx -s reload # 平滑重启 , 修改了 nginx.conf 之后, 可以不重启服务, 加载新的配置
二, nginx 的 configure 相关参数:
nginx 的 configure 参数
下面是 nginx 源码程序的 configure 参数:
--prefix= 指向安装目录.
--sbin-path= 指定执行程序文件存放位置.
--modules-path= 指定第三方模块的存放路径.
--conf-path= 指定配置文件存放位置.
--error-log-path= 指定错误日志存放位置.
--pid-path= 指定 pid 文件存放位置.
--lock-path= 指定 lock 文件存放位置.
--user= 指定程序运行时的非特权用户.
--group= 指定程序运行时的非特权用户组.
--builddir= 指向编译目录.
--with-rtsig_module 启用 rtsig 模块支持.
--with-select_module 启用 select 模块支持, 一种轮询处理方式, 不推荐在高并发环境中使用, 禁用:--without-select_module.
--with-poll_module 启用 poll 模块支持, 功能与 select 相同, 不推荐在高并发环境中使用.
--with-threads 启用 thread pool 支持.
--with-file-aio 启用 file aio 支持.
--with-http_ssl_module 启用 https 支持.
--with-http_v2_module 启用 ngx_http_v2_module 支持.
--with-ipv6 启用 ipv6 支持.
--with-http_realip_module 允许从请求报文头中更改客户端的 ip 地址, 默认为关.
--with-http_addition_module 启用 ngix_http_additon_mdoule 支持(作为一个输出过滤器, 分部分响应请求).
--with -http_xslt_module 启用 ngx_http_xslt_module 支持, 过滤转换 xml 请求 .
--with-http_image_filter_mdoule 启用 ngx_http_image_filter_module 支持, 传输 JPEG\GIF\PNG 图片的一个过滤器, 默认不启用, 需要安装 gd 库.
--with-http_geoip_module 启用 ngx_http_geoip_module 支持, 用于创建基于 MaxMind GeoIP 二进制文件相配的客户端 IP 地址的 ngx_http_geoip_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_mp4_module 启用 ngx_http_mp4_module 支持, 启用对 mp4 类视频文件的支持.
--with-http_gzip_static_module 启用 ngx_http_gzip_static_module 支持, 支持在线实时压缩输出数据流.
--with-http_random_index_module 启用 ngx_http_random_index_module 支持, 从目录中随机挑选一个目录索引.
--with-http_secure_link_module 启用 ngx_http_secure_link_module 支持, 计算和检查要求所需的安全链接网址.
--with-http_degradation_module 启用 ngx_http_degradation_module 支持允许在内存不足的情况下返回 204 或 444 代码.
--with-http_stub_status_module 启用 ngx_http_stub_status_module 支持查看 nginx 的状态页.
--without-http_charset_module 禁用 ngx_http_charset_module 这一模块, 可以进行字符集间的转换, 从其它字符转换成 UTF-8 或者从 UTF8 转换成其它字符. 它只能从服务器到客户端方向, 只有一个字节的字符可以转换.
--without-http_gzip_module 禁用 ngx_http_gzip_module 支持, 同 --with-http_gzip_static_module 功能一样.
--without-http_ssi_module 禁用 ngx_http_ssi_module 支持, 提供了一个在输入端处理服务器包含文件 (SSI) 的过滤器.
--without-http_userid_module 禁用 ngx_http_userid_module 支持, 该模块用来确定客户端后续请求的 cookies.
--without-http_access_module 禁用 ngx_http_access_module 支持, 提供了基于主机 ip 地址的访问控制功能.
--without-http_auth_basic_module 禁用 ngx_http_auth_basic_module 支持, 可以使用用户名和密码认证的方式来对站点或部分内容进行认证.
--without-http_autoindex_module 禁用 ngx_http_authindex_module, 该模块用于在 ngx_http_index_module 模块没有找到索引文件时发出请求, 用于自动生成目录列表.
--without-http_geo_module 禁用 ngx_http_geo_module 支持, 这个模块用于创建依赖于客户端 ip 的变量.
--without-http_map_module 禁用 ngx_http_map_module 支持, 使用任意的键, 值 对设置配置变量.
--without-http_split_clients_module 禁用 ngx_http_split_clients_module 支持, 该模块用于基于用户 ip 地址, 报头, cookies 划分用户.
--without-http_referer_module 禁用 ngx_http_referer_modlue 支持, 该模块用来过滤请求, 报头中 Referer 值不正确的请求.
--without-http_rewrite_module 禁用 ngx_http_rewrite_module 支持. 该模块允许使用正则表达式改变 URI, 并且根据变量来转向以及选择配置. 如果在 server 级别设置该选项, 那么将在 location 之前生效, 但如果 location 中还有更进一步的重写规则, location 部分的规则依然会被执行. 如果这个 URI 重写是因为 location 部分的规则造成的, 那么 location 部分会再次被执行作为新的 URI, 这个循环会被执行 10 次, 最后返回一个 500 错误.
--without-http_proxy_module 禁用 ngx_http_proxy_module 支持, http 代理功能.
--without-http_fastcgi_module 禁用 ngx_http_fastcgi_module 支持, 该模块允许 nginx 与 fastcgi 进程交互, 并通过传递参数来控制 fastcgi 进程工作.
--without-http_uwsgi_module 禁用 ngx_http_uwsgi_module 支持, 该模块用来使用 uwsgi 协议, uwsgi 服务器相关.
--without-http_scgi_module 禁用 ngx_http_scgi_module 支持, 类似于 fastcgi, 也是应用程序与 http 服务的接口标准.
--without-http_memcached_module 禁用 ngx_http_memcached 支持, 用来提供简单的缓存, 提高系统效率.
--without-http_limit_conn_module 禁用 ngx_http_limit_conn_module 支持, 该模块可以根据条件进行会话的并发连接数进行限制.
--without-http_limit_req_module 禁用 ngx_limit_req_module 支持, 该模块可以实现对于一个地址进行请求数量的限制.
--without-http_empty_gif_module 禁用 ngx_http_empty_gif_module 支持, 该模块在内存中常驻了一个 1*1 的透明 gif 图像, 可以被非常快速的调用.
--without-http_browser_module 禁用 ngx_http_browser_mdoule 支持, 创建依赖于请求报头的值 . 如果浏览器为 modern, 则 $modern_browser 等于 modern_browser_value 的值; 如果浏览器为 old, 则 $ancient_browser 等于 $ancient_browser_value 指令分配的值; 如果浏览器为 MSIE, 则 $msie 等于 1.
--without-http_upstream_ip_hash_module 禁用 ngx_http_upstream_ip_hash_module 支持, 该模块用于简单的负载均衡.
--with-http_perl_module 启用 ngx_http_perl_module 支持, 它使 nginx 可以直接使用 perl 或通过 ssi 调用 perl.
--with-perl_modules_path= 设定 perl 模块路径
--with-perl= 设定 perl 库文件路径
--http-log-path= 设定 access log 路径
--http-client-body-temp-path= 设定 http 客户端请求临时文件路径
--http-proxy-temp-path= 设定 http 代理临时文件路径
--http-fastcgi-temp-path= 设定 http fastcgi 临时文件路径
--http-uwsgi-temp-path= 设定 http scgi 临时文件路径
--http-scgi-temp-path= 设定 http scgi 临时文件路径
--without-http 禁用 http server 功能
--without-http-cache 禁用 http cache 功能
--with-mail 启用 POP3,IMAP4,SMTP 代理模块
--with-mail_ssl_module 启用 ngx_mail_ssl_module 支持
--without-mail_pop3_module 禁用 pop3 协议.
--without-mail_iamp_module 禁用 iamp 协议.
--without-mail_smtp_module 禁用 smtp 协议.
--with-google_perftools_module 启用 ngx_google_perftools_mdoule 支持, 调试用, 可以用来分析程序性能瓶颈.
--with-cpp_test_module 启用 ngx_cpp_test_module 支持.
--add-module= 指定外部模块路径, 启用对外部模块的支持.
--with-cc= 指向 C 编译器路径.
--with-cpp= 指向 C 预处理路径.
--with-cc-opt= 设置 C 编译器参数, 指定 --with-cc-opt="-I /usr/lcal/include", 如果使用 select()函数, 还需要同时指定文件描述符数量 --with-cc-opt="-D FD_SETSIZE=2048". (PCRE 库)
--with-ld-opt= 设置连接文件参数, 需要指定 --with-ld-opt="-L /usr/local/lib".(PCRE 库)
--with-CPU-opt= 指定编译的 CPU 类型, 如 pentium,pentiumpro,...amd64,ppc64...
--without-pcre 禁用 pcre 库.
--with-pcre 启用 pcre 库.
--with-pcre= 指向 pcre 库文件目录.
--with-pcre-opt= 在编译时为 pcre 库设置附加参数 .
--with-md5= 指向 md5 库文件目录.
--with-md5-opt= 编译时为 md5 库设置附加参数.
--with-md5-asm 使用 md5 汇编源.
--with-sha1= 指向 sha1 库文件目录.
--with-sha1-opt= 编译时为 sha1 库设置附加参数.
--with-sha1-asm 使用 sha1 汇编源.
--with-zlib= 指向 zlib 库文件目录.
--with-zlib-opt= 在编译时为 zlib 设置附加参数.
--with-zlib-asm= 为指定的 CPU 使用汇编源进行优化.
--with-libatomic 为原子内存的更新操作的实现提供一个架构.
--with-libatomic= 指向 libatomic_ops 的安装目录.
--with-openssl= 指向 openssl 安装目录.
--with-openssl-opt= 在编译时为 openssl 设置附加参数.
--with-debug 启用 debug 日志.
nginx 的 configure 参数
三, nginx 之 log_format 格式详解:
PS:Nginx 日志相关指令主要有两条, 一条是 log_format, 用来设置日志格式, 另外一条是 access_log, 用来指定日志文件的存放路径, 类型, 缓存大小等, 一般放在 Nginx 的默认主配置文件 / etc/nginx/nginx.conf .
Nginx 的 log_format 有很多可选的参数用于标示服务器的活动状态, 默认的是:
'$remote_addr - $remote_user [$time_local]"$request"''$status $body_bytes_sent "$http_referer" ''"$http_user_agent""$http_x_forwarded_for"';
参数 | 说明 | 示例 |
$remote_addr | 客户端地址 | 219.227.111.255 |
$remote_user | 客户端用户名称 | — |
$time_local | 访问时间和时区 | 18/Jul/2014:17:00:01 +0800 |
$request | 请求的 URI 和 HTTP 协议 | “GET /article-10000.html HTTP/1.1” |
$http_host | 请求地址,即浏览器中你输入的地址(IP 或域名) | www.ha97.com
|
$status | HTTP 请求状态 | 200 |
$upstream_status | upstream 状态 | 200 |
$body_bytes_sent | 发送给客户端文件内容大小 | 1547 |
$http_referer | url 跳转来源 | http://www.ha97.com/tag/https ://www. http://www.ha97.com/category/google .com/ |
$http_user_agent | 用户终端浏览器等信息 | “Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; SV1; GTB7.0; .NET4.0C; |
$ssl_protocol | SSL 协议版本 | TLSv1 |
$ssl_cipher | 交换数据中的算法 | RC4-SHA |
$upstream_addr | 后台 upstream 的地址,即真正提供服务的主机地址 | 10.36.10.80:80 |
$request_time | 整个请求的总时间 | 0.165 |
$upstream_response_time | 请求过程中,upstream 响应时间 | 0.002 |
四,
来源: http://www.bubuko.com/infodetail-3282666.html