Nginx的编译安装
Nginx快速安装
Mainline version 开发版
Stable version 稳定版
Legacy version 历史版本
基础环境准备:
#确认系统网络 [root@qmf ~]# ping baidu.com #确认yum可用 [root@qmf ~]# yum install -y gcc gcc-c++ autoconf pcre pcre-devel make automake wget httpd-tools vim tree #关闭iptables [root@qmf ~]# /etc/init.d/iptables stop [root@qmf ~]# chkconfig iptables off #临时关闭selinux [root@qmf ~]# setenforce 0 #初始化基本目录 mkdir /soft/{code,logs,package/src} -p #配置Nginx官方Yum源 [root@qmf ~]# vim /etc/yum.repos.d/nginx.repo [nginx] name=nginx repo baseurl=http:#nginx.org/packages/centos/6/$basearch/ gpgcheck=0 enabled=1 #安装Nginx [root@qmf ~]# yum install nginx -y
查看Nginx当前版本
[root@qmf ~]# nginx -v nginx version: nginx/1.12.2
Nginx安装目录
[root@qmf ~]# rpm -ql nginx
Nginx安装目录
路径 | 类型 | 作用 |
---|---|---|
/etc/nginx /etc/nginx/nginx.conf /etc/nginx/conf.d /etc/nginx/conf.d/default.conf | 配置文件 | Nginx主配置文件 |
/etc/nginx/fastcgi_params /etc/nginx/scgi_params /etc/nginx/uwsgi_params | 配置文件 | Cgi、Fastcgi、Uwcgi配置文件 |
/etc/nginx/win-utf /etc/nginx/koi-utf /etc/nginx/koi-win | 配置文件 | Nginx编码转换映射文件 |
/etc/nginx/mime.types | 配置文件 | http协议的Content-Type |
/etc/rc.d/init.d/nginx /etc/rc.d/init.d/nginx-debug /etc/sysconfig/nginx /etc/sysconfig/nginx-debug | 配置文件 | 配置系统守护进程管理器 |
/etc/logrotate.d/nginx | 配置文件 | Nginx日志轮询,日志切割 |
/usr/sbin/nginx /usr/sbin/nginx-debug | 命令 | Nginx终端管理命令 |
/usr/share/doc/nginx-1.12.2 /usr/share/man/man8/nginx.8.gz | 目录 | Nginx的帮助手册 |
/var/cache/nginx | 目录 | Nginx的缓存目录 |
/var/log/nginx | 目录 | Nginx的日志目录 |
/etc/nginx/modules /usr/lib64/nginx /usr/lib64/nginx/modules | 目录 | Nginx模块目录 |
/usr/share/nginx /usr/share/nginx/html /usr/share/nginx/html/50x.html /usr/share/nginx/html/index.html | 目录 | Nginx默认站点目录 |
Nginx编译参数
查看Nginx编译参数
[root@qmf ~]# nginx -V
Nginx编译参数选项
编译选项 | 作用 |
---|---|
--prefix=/etc/nginx | 程序安装目录和路径 |
--sbin-path=/usr/sbin/nginx | Nginx启动停止命令 |
--modules-path=/usr/lib64/nginx/modules | Nginx模块路径 |
--conf-path=/etc/nginx/nginx.conf | Nginx主配置文件路径 |
--error-log-path=/var/log/nginx/error.log | Nginx错误日志路径 |
--http-log-path=/var/log/nginx/access.log | Nginx访问日志路径 |
--pid-path=/var/run/nginx.pid | NginxPid路径 |
--lock-path=/var/run/nginx.lock | Nginx锁路径 |
--http-client-body-temp-path=/var/cache/nginx/client_temp | client头部临时缓存文件 |
--http-proxy-temp-path=/var/cache/nginx/proxy_temp | proxy临时缓存文件 |
--http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp | fastcgi临时缓存文件 |
--http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp | uwsgi临时缓存文件 |
--http-scgi-temp-path=/var/cache/nginx/scgi_temp | scgi临时缓存文件 |
--user=nginx | 设定Nginx进程启动用户 |
--group=nginx | 设定Nginx进程启动组(安全) |
--with-cc-opt | 设置额外的参数将被添加到CFLAGS变量 |
--with-ld-opt | 设置附加的参数, 链接系统库 |
Nginx常用模块
Nginx模块分为 Nginx官方模块以及Nginx第三方模块
Nginx编译选项 | 模块作用 |
---|---|
ngx_http_core_module | 包含一些核心的http参数配置,对应Nginx的配置区块部分 |
ngx_http_access_module | 访问控制模块,用来控制网站用户对Nginx的访问 |
ngx_http_gzip_module | 压缩模块,对Nginx返回的数据压缩,属于性能优化模块 |
ngx_http_fastcgi_module | fastci模块,和动态应用相关的模块,例如PHP |
ngx_http_proxy_module | proxy代理模块 |
ngx_http_upstream_module | 负载均衡模块,可以实现网站的负载均衡功能及节点的健康检查。 |
ngx_http_rewrite_module | URL地址重写模块 |
ngx_http_limit_conn_module | 限制用户并发连接数及请求数模块 |
ngx_http_limit_req_module | 限制Nginx request processing rate根据定义的key |
ngx_http_log_module | 访问日志模块,以指定的格式记录Nginx客户访问日志等信息 |
ngx_http_auth_basic_module | Web认证模块,设置Web用户通过账号密码访问Nginx |
nginx_http_ssl_module | ssl模块,用于加密的http连接,如https |
Nginx内置变量
http核心模块的内置变量
http请求变量
Nginx内置变量
自定义变量
$uri: 当前请求的uri,不带参数 $request_uri: 请求的uri,带完整参数 $host: http请求报文中host首部,如果没有则以处理此请求的虚拟主机的主机名代替 $hostname: nginx服务运行在主机的主机名 $remote_addr: 客户端IP $remote_port: 客户端端口 $remote_user: 使用用户认证时客户端用户输入的用户名 $request_filename: 用户请求中的URI经过本地root或alias转换后映射的本地文件路径 $request_method: 请求方法, GET POST PUT $server_addr: 服务器地址 $server_name: 服务器名称 $server_port: 服务器端口 $server_protocol: 服务器向客户端发送响应时的协议, 如http/1.1 http/1.0 $scheme: 在请求中使用scheme, 如http:#xxx.com中的http $http_HEADER: 匹配请求报文中指定的HEADER $http_host: 匹配请求报文中的host首部 $document_root: 当前请求映射到的root配置
Nginx编译安装
openresty编译安装
1.基础环境准备
mkdir /soft/package/src -p mkdir /soft/package/src/ngx_3rd -p useradd -s /sbin/nologin -M www yum -y install wget make gcc gcc-c++ zlib-devel openssl \ openssl-devel pcre-devel kernel keyutils patch perl zlib \ tcl readline-devel glic libxslt-devel gd-devel GeoIP-devel \ libevent libevent-devel
2.安装依赖插件
cd /soft/package/src #openresty安装包 wget https:#openresty.org/download/openresty-1.11.2.2.tar.gz tar -xf openresty-1.11.2.2.tar.gz
2.1:libdrizzle模块
wget http:#openresty.org/download/drizzle7-2011.07.21.tar.gz tar xzvf drizzle7-2011.07.21.tar.gz cd drizzle7-2011.07.21/ ./configure --without-server make libdrizzle-1.0 make install-libdrizzle-1.0
2.2:openssl依赖包安装
wget https:#www.openssl.org/source/openssl-1.0.2d.tar.gz tar -xf openssl-1.0.2d.tar.gz
2.3:pcre依赖
wget -O pcre-8.37.tar.gz \ http:#sourceforge.net/projects/pcre/files/pcre/8.37/pcre-8.37.tar.gz/download tar -xf pcre-8.37.tar.gz wget ftp:#91.193.69.2/distributive/FreeBSD/ports/local-distfiles/osa/nginx-accesskey-2.0.3.tar.gz tar xf nginx-accesskey-2.0.3.tar.gz mv nginx-accesskey-2.0.3 ngx_3rd/nginx-accesskey-master cd /soft/package/src/ngx_3rd wget -O ngx_http_consistent_hash.zip \ https:#codeload.github.com/replay/ngx_http_consistent_hash/zip/master unzip ngx_http_consistent_hash.zip wget -O nginx-static-etags.zip \ https:#codeload.github.com/mikewest/nginx-static-etags/zip/master unzip nginx-static-etags.zip wget -O nginx-http-footer-filter.zip \ https:#codeload.github.com/alibaba/nginx-http-footer-filter/zip/master unzip nginx-http-footer-filter.zip wget -O form-input-nginx-module.zip \ https:#codeload.github.com/calio/form-input-nginx-module/zip/master unzip form-input-nginx-module.zip wget -O ngx_http_accounting_module.zip \ https:#codeload.github.com/Lax/ngx_http_accounting_module/zip/master unzip ngx_http_accounting_module.zip wget -O ngx_log_if.zip \ https:#codeload.github.com/cfsego/ngx_log_if/zip/master unzip ngx_log_if.zip wget -O nginx-limit-upstream.zip \ https:#codeload.github.com/cfsego/nginx-limit-upstream/zip/master unzip nginx-limit-upstream.zip wget -O limit_upload_rate.zip \ https:#codeload.github.com/cfsego/limit_upload_rate/zip/master unzip limit_upload_rate.zip wget -O ngx_devel_kit.zip \ https:#codeload.github.com/simpl/ngx_devel_kit/zip/master unzip ngx_devel_kit.zip wget -O nginx-module-vts.zip \ https:#codeload.github.com/vozlt/nginx-module-vts/zip/master unzip nginx-module-vts.zip wget -O nginx_tcp_proxy_module.zip \ https:#codeload.github.com/yaoweibin/nginx_tcp_proxy_module/zip/master unzip nginx_tcp_proxy_module.zip wget -O nginx-module-sts.zip \ https:#codeload.github.com/vozlt/nginx-module-sts/zip/master unzip nginx-module-sts.zip wget -O nginx-http-concat.zip \ https:#codeload.github.com/alibaba/nginx-http-concat/zip/master unzip nginx-http-concat.zip wget -O nginx-url.zip \ https:#codeload.github.com/vozlt/nginx-module-url/zip/master unzip nginx-url.zip wget -O nginx-access-plus.zip \ https:#codeload.github.com/nginx-clojure/nginx-access-plus/zip/master unzip nginx-access-plus.zip
3.编译openresty
cd /soft/package/src/ngx_openresty-1.11.2.2 ./configure \ --user=www \ --group=www \ --prefix=/soft/openresty-1.11 \ --pid-path=/soft/openresty-1.11/nginx/pid \ --error-log-path=/soft/log/nginx/error.log \ --http-log-path=/soft/log/nginx/access.log \ --http-proxy-temp-path=/soft/openresty-1.11/nginx/proxy_temp \ --http-fastcgi-temp-path=/soft/openresty-1.11/nginx/fastcgi_temp \ --http-client-body-temp-path=/soft/openresty-1.11/nginx/client_body_temp \ --with-openssl=/soft/package/src/openssl-1.0.2d \ --with-pcre=/soft/package/src/pcre-8.37 \ --with-libdrizzle=/usr/local \ --with-threads \ --with-file-aio \ --with-http_sub_module \ --with-http_dav_module \ --with-http_flv_module \ --with-http_ssl_module \ --with-http_xslt_module \ --with-http_iconv_module \ --with-http_geoip_module \ --with-http_realip_module \ --with-http_gunzip_module \ --with-http_drizzle_module \ --with-http_addition_module \ --with-http_gzip_static_module \ --with-http_secure_link_module \ --with-http_stub_status_module \ --with-http_auth_request_module \ --with-http_random_index_module \ --with-http_image_filter_module \ --without-http_uwsgi_module \ --without-http_scgi_module \ --with-mail \ --with-mail_ssl_module \ --add-module=/soft/package/src/ngx_3rd/nginx-accesskey-master/ \ --add-module=/soft/package/src/ngx_3rd/ngx_http_consistent_hash-master/ \ --add-module=/soft/package/src/ngx_3rd/nginx-static-etags-master/ \ --add-module=/soft/package/src/ngx_3rd/nginx-http-footer-filter-master/ \ --add-module=/soft/package/src/ngx_3rd/ngx_http_accounting_module-master/ \ --add-module=/soft/package/src/ngx_3rd/ngx_log_if-master/ \ --add-module=/soft/package/src/ngx_3rd/nginx-http-concat-master/ \ --add-module=/soft/package/src/ngx_3rd/nginx-module-vts-master/ \ --add-module=/soft/package/src/ngx_3rd/nginx-module-url-master/ \ --add-module=/soft/package/src/ngx_3rd/nginx-access-plus-master/src/c/ gmake && gmake install && ln -s /soft/openresty-1.11 /soft/openresty