当前位置:首页 > Nginx > 正文内容

Nginx的编译安装

5年前 (2019-08-31)Nginx684

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/nginxNginx启动停止命令
--modules-path=/usr/lib64/nginx/modulesNginx模块路径
--conf-path=/etc/nginx/nginx.confNginx主配置文件路径
--error-log-path=/var/log/nginx/error.logNginx错误日志路径
--http-log-path=/var/log/nginx/access.logNginx访问日志路径
--pid-path=/var/run/nginx.pidNginxPid路径
--lock-path=/var/run/nginx.lockNginx锁路径
--http-client-body-temp-path=/var/cache/nginx/client_tempclient头部临时缓存文件
--http-proxy-temp-path=/var/cache/nginx/proxy_tempproxy临时缓存文件
--http-fastcgi-temp-path=/var/cache/nginx/fastcgi_tempfastcgi临时缓存文件
--http-uwsgi-temp-path=/var/cache/nginx/uwsgi_tempuwsgi临时缓存文件
--http-scgi-temp-path=/var/cache/nginx/scgi_tempscgi临时缓存文件
--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_modulefastci模块,和动态应用相关的模块,例如PHP
ngx_http_proxy_moduleproxy代理模块
ngx_http_upstream_module负载均衡模块,可以实现网站的负载均衡功能及节点的健康检查。
ngx_http_rewrite_moduleURL地址重写模块
ngx_http_limit_conn_module限制用户并发连接数及请求数模块
ngx_http_limit_req_module限制Nginx request processing rate根据定义的key
ngx_http_log_module访问日志模块,以指定的格式记录Nginx客户访问日志等信息
ngx_http_auth_basic_moduleWeb认证模块,设置Web用户通过账号密码访问Nginx
nginx_http_ssl_modulessl模块,用于加密的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


“Nginx的编译安装” 的相关文章

LNMP架构搭建动态网站

1.搭建LNMP架构yum安装 nginx php7.2 Mriadb5.71.安装Nginx#1.使用Nginx官方提供的rpm包 [root@nginx ~]# cat /etc/yum.repos.d/nginx.repo  [nginx] nam...

keepalived高可用

1、keepalived    通过vrrp协议实现的高可用.             虚拟路由冗余协议    ...

Nginx实现动静分离

Nginx实现动静分离

Nginx动静分离基本概述动静分离,通过中间件将动静分离和静态请求进行分离;通过中间件将动态请求和静态请求分离,可以建上不必要的请求消耗,同事能减少请求的延时。通过中间件将动态请求和静态请求分离,逻辑图如下:动静分离好处:动静分离后,即使动态服务不可用,但静态资源不会受到影响。Nginx动静分离场景...

Nginx实现Rewrite重写(url重写跳转)及各种案例

Nginx实现Rewrite重写(url重写跳转)及各种案例

Rewrite基本概述Rewrite主要实现url地址重写,以及重定向,就是把传入web的请求重定向到其他url的过程。Rewrite使用场景1、地址跳转,用户访问www.drz.com这个URL是,将其定向至一个新的域名mobile.drz.com2、协议跳转,用户通过http协议请求网站时,将其...

Nginx+Lua实战灰度发布与WAF

Nginx+Lua实战灰度发布与WAF

1.Lua脚本基础语法Lua是一个简洁、轻量、可扩展的脚本语言Nginx+Lua优势充分的结合Nginx的并发处理epool优势和Lua的轻量实现简单的功能且高并发的场景统计IP统计用户信息安全WAF1.安装lua[root@Nginx-Lua ~]# yum inst...

GoAccess分析Nginx日志

GoAccess分析Nginx日志

1.GoAccess基本概述GoAccess是一个基于终端的快速日志分析器。其核心思想是实时快速分析和查看Web服务器统计信息。1.安装简单;2.操作容易;3.界面酷炫;2.GoAccess安装方式安装分为yum安装与源码安装,大家可以自行选择,我这里选择使用源码的方式安装1.安装goaccess[...