安装nginx

  1. 注意

    Linux操作系统需要2.6及其以上的内核(支持epoll)

  2. 使用nginx的必备软件

    gcc编辑器

    yum -y install gcc gcc-c++

    pcre库(支持正则表达式)

    yum install -y pcre pcre-devel

    zlib库(支持gzip压缩传输)

    yum install -y zlib zlib-devel

    OpenSSL开发库(支持SSL协议)

    yum install -y openssl openssl-devel

  3. Linux内核参数优化方案

    配置步骤

  4. 编译安装

# nginx版本下载链接:http://nginx.org/en/download.html
wget http://nginx.org/download/nginx-1.15.7.tar.gz
tar zxvf nginx-1.15.7.tar.gz
cd nginx-1.15.7
./configure --prefix=/data1/server/nginx --sbin-path=/data1/bin/nginx --user=www --group=www --modules-path=/data1/server/nginx/modules --conf-path=/data1/config/nginx/nginx.conf --error-log-path=/data1/logs/nginx/error.log --http-log-path=/data1/logs/nginx/access.log --pid-path=/data1/tmp/nginx/ngix.pid --lock-path=/data1/tmp/nginx/nginx.lock --with-debug
make
make install

控制nginx

  • 启动

    • 默认方式启动 /usr/local/nginx/sbin/nginx
    • 另行指定配置文件启动 /usr/local/nginx/sbin/nginx -c /tmp/nginx.conf
    • 另行指定安装目录启动 /usr/local/nginx/sbin/nginx -p /usr/local/nginx
    • 另行指定全局配置项启动 /usr/local/nginx/sbin/nginx -g "pid /var/nginx/test.pid"
  • 测试配置信息是否有错误
    • /usr/local/nginx/sbin/nginx -t
  • 在测试配置阶段不输出信息
    • /usr/local/nginx/sbin/nginx -t -q
  • 显示版本信息
    • /usr/local/nginx/sbin/nginx -v
  • 显示编译阶段的参数
    • /usr/local/nginx/sbin/nginx -V
  • 停止服务
    • /usr/local/nginx/sbin/nginx -s stop 或者 kill -s SIGTERM <nginx master pid##
  • 重载配置文件
    • /usr/local/nginx/sbin/nginx -s reload 或者 kill -s SIGHUP <nginx master pid##
  • 日志文件回滚
    • /usr/local/nginx/sbin/nginx -s reopen 或者 kil -s SIGUSR1 <nginx master pid##
  • 平滑升级nginx
    • 通知正在运行的旧版本nginx准备升级 kill -s SIGUSR2 <nginx master pid##
    • 重新编译nginx
        获取新版nginx源码   wget http://nginx.org/download/nginx-1.15.7.tar.gz
    解压 tar zxvf nginx-1.15.7.tar.gz
    进入解压目录 cd nginx-1.15.7
    配置 ./configure [参数]
    编译 make (千万不能运行make install,这样会覆盖安装;make完之后在objs目录下就多了个nginx)
    备份旧的nginx程序 cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
    覆盖旧的nginx程序 cp -rfp objs/nginx /usr/local/nginx/sbin/nginx
  • 显示帮助 nginx -h 或者 nginx -?

nginx编译参数详解

  • 路径相关参数

    prefix=PATH # nginx安装部署后的根目录,默认为/usr/local/nginx目录

    sbin-path=PATH # 可执行文件的放置路径,默认为<prefix##/scgi_temp

    modules-path=PATH # 模块放置路径

    conf-path=PATH # nginx.conf配置文件放置路径

    error-log-path=PATH # 错误日志放置路径

    pid-path=PATH # nginx.pid放置路径

    lock-path=PATH # nginx.lock放置路径

  • 编译相关参数

    with-cc=PATH # C编译器的路径

    with-cpp=PATH # C预编辑器的路径

    with-cc-opt=OPTIONS # 在nginx编译期间指定加入一些编译选项

    with-ld-opt=OPTIONS # 用于加入链接时的参数

    with-cpu-opt=CPU # 指定CPU处理器架构,只能从以下取值中选择:pentium、pentiumpro、pentium3、pentium4、athlon、opteron、sparc32、sparc64、ppc64

  • 依赖软件的相关参数

    • pcre

      without-pcre # 配置文件关闭正则表达式匹配

      with-pcre # 强制使用PCRE库

      with-pcre=DIR # 指定pcre库的源码位置,在编译nginx时会进入该目录编译pcre源码

      with-pcre-opt=OPTIONS # 编译pcre源码时希望加入的编译选项

      with-pcre-jit # 编译PCRE库支持即时编译

    • OpenSSL

      with-openssl=DIR # 指定OpenSSL库的源码位置,在编译nginx时会进入该目录编译OpenSSL源码(可以访问http://www.openssl.org下载)

      with-openssl-opt=OPTIONS # 编译OpenSSL源码时希望加入的编译选项

    • 原子库

      with-libatomic # 强制使用atomic库

      with-libatomic=DIR # atomic所在的位置

    • zlib库

      with-zlib=DIR # 指定zlib库的源码位置,在编译nginx时会进入该目录编译zlib源码

      with-zlib-opt=OPTIONS # 编译zlib源码时加入的编译选项

      with-zlib-asm=CPU # 指定对特定的CPU使用zlib库的汇编优化功能,目前仅支持两种架构:pentium和pentiumpro

  • 模块相关参数

    • 事件模块(默认情况下安装epoll)

      with-select_module # 使用select module处理事件驱动

      without-select_module # 不按照select module

      with-poll_module # 使用poll module处理事件驱动

      without-poll_module # 不安装poll module

    • 默认即编译进入nginx的http模块

      without-http_charset_module # 不安装http charset module,这个模块可以将服务器发出的http响应重编码

      without-http_gzip_module # 不安装http gzip module,在服务器发出的http响应包中,这个模块可以按照配置文件指定的content-type对特定大小的http相应包体执行gzip压缩

      without-http_ssi_module # 不安装http ssi module,这个模块可以在向用户返回的http响应包体中加入特定的内容,如html文件中固定的页头和页尾

      without-http_userid_module # 不安装http userid module,这个模块可以通过http请求头部信息里的一些字段认证用户信息,以确定请求是否合法

      without-http_access_module # 不安装http access module,这个模块可以根据ip地址限制能够访问服务器的客户端

      without-http_auth_basic_module # 不安装http auth basic module,这个模块可以提供最简单的用户名/密码认证

      without-http_autoindex_module # 不安装http autoindex module,该模块提供简单的目录浏览功能

      without-http_geo_module # 不安装http geo module,这个模块可以定义一些变量,这些变量的值将与客户端IP地址关联,这样nginx针对不同的地区的客户端(根据IP地址判断)返回不一样的结果,例如不同地区显示不同语言的网页

      without-http_map_module # 不安装http map module,这个模块可以建立一个key/value映射表,不同的key得到相应的value,这样可以针对不同的URL做特殊处理。例如:返回302重定向响应时,URL不同时返回的Location字段也不一样

      without-http_split_clients_module # 不安装http split_clients module,这个模块可以根据客户端的信息,例如IP地址、header头、cookie等,来区分处理

      without-http_referer_module # 不安装http referer module,这个模块可以根据请求中的referer字段来拒绝请求

      without-http_rewrite_module # 不安装http rewrite module, 这个模块提供http请求在nginx服务内部的重定向功能,依赖pcre库

      without-http_proxy_module # 不安装http proxy module,这个模块提供基本的http反向代理功能

      without-http_fastcgi_module # 不安装http fastcgi module,这个模块提供FastCGI功能

      without-http_uwsgi_module # 不安装http uwsgi module,这个模块提供uWSGI功能

      without-http_scgi_module # 不安装http scgi module,这个模块提供SCGI功能

      without-http_memcached_module # 不安装http memcached module,这个模块可以使得nginx直接由上游的memcached服务读取数据,并简单地适配成HTTP相应返回给客户端

      without-http_limit_conn_module # 不安装http limit conn module,这个模块针对某个IP地址限制并发连接数。例如:使nginx对一个IP地址仅允许一个连接

      without-http_limit_req_module # 不安装http limit_req module,module,这个模块针对某个IP地址限制并发连接数。

      without-http_empty_gif_module # 不安装http empty_gif module,这个模块可以使得nginx在收到无效请求时,立刻返回内存中的1*1像素的GIF图片。这种好处在于,对于明显的无效请求不会去试图浪费服务器资源

      without-http_browser_module # 不安装http browser module,这个模块会根据http请求中的user-agent字段(该字段通常由浏览器填写)来识别浏览器

      without-http_upstream_hash_module # 不安装http upstream_hash module,在后端集群session共享的情况,这个模块提供当nginx与后端server建立连接时,会根据ip做散列运算来决定与后端哪台server通信,这样可以实现负载均衡

      without-http_upstream_ip_hash_module # 不安装http upstream_ip_hash module,这个模块在后端集群session共享时提供当nginx与后端server建立连接时,会根据ip做散列运算来决定与后端哪台server通信,这样可以实现负载均衡

    • 默认不会编译进入nginx的http模块

      with-http_ssl_module # http ssl module,这个模块使nginx支持ssl协议,提供https服务(确保已配置OpenSSL)

      with-http_realip_module # http realip module,这个模块可以从客户端请求里的header信息(如X-real-ip或者X-forwarded-for)中获取真正的客户端ip地址

      with-http_addition_module # http addition module,这个模块可以在返回客户端的http包体头部或者尾部增加内容

      with-http_xslt_module # http xslt module,这个模块可以使xml格式的数据在发给客户端前加入xsl渲染(确保已安装libxml2和libxslt)

      with-http_image_filter_module # http image_filter module,这个模块将符号配置的图片实时压缩为指定大小(width*height)的缩略图再发送给用户,目前支持JPEG、PNG、GIF格式(确保已安装libgd)

      with-http_geoip_module # http geoip module,这个模块可以依据MaxMind GeoIP的IP地址数据库对客户端的IP地址得到实际的地理位置信息(确保有MaxMind GeoIP的库文件,访问http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz获取)

      with-http_sub_module # http sub module,这个模块可以在nginx返回客户端的http响应包中将指定的字符串替换为自己需要的字符串

      with-http_dav_module # http dav module,这个模块可以让nginx支持webdav标准,如支持webdav协议中的PUT、DELETE、COPY、MOVE、MKCOL等请求

      with-http_flv_module # http flv module,这个模块可以在向客户端返回响应时,对FLV格式的视频文件在header头做一些处理,使得客户端可以观看、拖动FLV视频

      with-http_mp4_module # http mp4 module,这个模块使客户端可以观看、拖动MP4视频

      with-http_gzip_static_module # http gzip_static module,这个模块可以在做gzip压缩前,先查看相同位置是否有已经做过gzip压缩的.gz文件,如果有,就直接返回,这样就可以预先在服务器上做好文档的压缩,给CPU减负

      with-http_random_index_module # http random_index module,这个模块在客户端访问某个目录时,随机返回该目录下的任意文件

      with-http_secure_link_module # http secure_link module,这个模块提供一种验证请求是否有效的机制。例如:它会验证URL中需要加入的token参数是否属于特定客户端发来的,以及检查时间戳是否过期

      with-http_stub_status_module # http stub_status module,这个模块可以让运行中的nginx提供性能统计页面,获取相关的并发连接、请求的信息

      with-google_perftools_module # google perftools module,这个模块提供google的性能测试工具

    • 邮件代理服务器相关的mail模块

      with-mail # 安装邮件服务器反向代理模块,使nginx可以反向代理IMAP、POP3、SMTP等协议。该模块默认不安装

      with-mail_ssl_module # 安装mail ssl module。该模块可以使IMAP、POP3、SMTP等协议基于SSL/TLS协议之上使用。该模块默认不安装并依赖于openSSL库

      without-mail_pop3_module # 不安装 mail pop module。在使用--with-mail参数后,pop3 module是默认安装的,以使nginx支持pop3协议

      without-mail_imap_module # 不安装 mail imap module。在使用--with-mail参数后,imap module是默认安装的,以使nginx支持IMAP协议

      without-mail_smtp_module # 不安装 mail smtp module。在使用--with-mail参数后,smtp module是默认安装的,以使nginx支持SMTP协议

  • 其他模块参数

    with-debug # 打印debug调试级别日志

    add-module=PATH # 当在nginx里加入第三方模块时,通过这个参数指定第三方模块的路径

    without-http # 禁用HTTP服务器

    without-http-cache # 禁用http服务器里的缓存cache特性

    with-file-aio # 启动文件的异步i/o功能来处理磁盘文件,这需要linux内核支持原生的异步i/o

    user=USER # 指定nginx worker进程运行时所属的用户

    group=GROUP # 指定nginx worker进程运行时所属的组

如何源码编译安装并控制nginx的更多相关文章

  1. Linux系统 - 源码编译安装Nginx

    什么是Nginx? Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器,在高连接并发的情况下N ...

  2. Nginx 最新版源码编译安装 包含常用模块作用及所需依赖

    第一部分 Nginx最新版源码编译安装 1. 使用的模块 模块1:http_rewrite_module 基于正则匹配来实现重定向.依赖PCRE库,见依赖1 模块2:http_gzip_module ...

  3. Centos7通过yum跟源码编译安装Nginx

    源码编译安装 http://nginx.org/en/download.html 到官网下载,然后用XFTP上传到root目录 把文件解压出来 tar -zxvf nginx-1.16.0.tar.g ...

  4. CentOS7 源码编译安装Nginx

    源码编译安装nginx     1.下载nginx源码包(这里以nginx-1.18.0为例) wget http://nginx.org/download/nginx-1.18.0.tar.gz 2 ...

  5. 源码编译安装nginx及设置开机启动项

    1.上传nginx文档:解压到/data目录下,并安装依赖包tar xf nginx-1.20.1.tar.gz -C /data/cd /data/nginx-1.20.1/ && ...

  6. Centos7.X 源码编译安装subversion svn1.8.x

    说明:SVN(subversion)的运行方式有两种:一种是基于Apache的http.https网页访问形式:还有一种是基于svnserve的独立服务器模式.SVN的数据存储方式也有两种:一种是在B ...

  7. 源码编译安装lnmp环境

    一.源码编译安装步骤 首先说明源码安装的好处   速度快,可自定义路径 主要有三步:1.配置 进入源码安装包  ./configure --prefix=/uer/local/nginx  可指定参数 ...

  8. CentOS 7上源码编译安装和配置LNMP Web+phpMyAdmin服务器环境

    CentOS 7上源码编译安装和配置LNMP Web+phpMyAdmin服务器环境 什么是LNMP? LNMP(别名LEMP)是指由Linux, Nginx, MySQL/MariaDB, PHP/ ...

  9. Zabbix 源码编译安装

    简介: Zabbix 分布式监控系统,源码编译安装记录 ( 记不得是第多少次了 ) 下载地址:http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX ...

随机推荐

  1. 在业务控制方法中写入包装User的模型来收集参数

    可以在业务控制方法中书写0个或多个模型来收集客户端的参数 1)  如果多个模型中有相同的属性时,可以用user.name或admin.name来收集客户端参数 2)  用一个新的模型将User和Adm ...

  2. php连接数据库的两种方式- 面向过程 面向对象

    php连接数据库的两种方式- 面向过程 面向对象   一.面向对象1. 链接数据库$conn = @new mysqli("127.0.0.1","root", ...

  3. Vue组件v-if新渲染的组件不更新

    Vue组件v-if新渲染的组件不更新:可能原因是Vue识别到是相似组件(高度相似甚至相同)不会更新元素.给原来的组件和新组件分别给不同的key值让Vue识别为不同的组件.

  4. centos7安装kvm及kvm管理

    一.安装kvm 查看CPU是否支持虚拟化  grep -E 'svm|vmx' /proc/cpuinfo - vmx is for Intel processors - svm is for AMD ...

  5. Mybatis 属性配置

    properties  定义配置,配置的属性可以在整个配置文件中的其他位置进行引用 <properties resource="db.properties"></ ...

  6. C语言递归之对称二叉树

    题目描述 给定一个二叉树,检查它是否是镜像对称的. 示例 二叉树 [1,2,2,3,4,4,3] 是对称的. / \ / \ / \ [1,2,2,null,3,null,3] 则不是镜像对称的. / ...

  7. SecureCRT 8.3注册码下载

    SecureCRT注册码是一款针对“SecureCRT 8.3”软件而制作的激活破解工具,可以完美激活“SecureCRT”软件,从而达到免费使用的目的.而SecureCRT则是一款非常优秀的且支持s ...

  8. Ingreslock后门漏洞

    一.简介 1524端口 ingreslock Ingres 数据库管理系统(DBMS)锁定服务 利用telnet命令连接目标主机的1524端口,直接获取root权限. Ingreslock后门程序监听 ...

  9. 腾讯云远程连接Kafka

    腾讯云服务器上部署Kafka,使用server.properties中公网IP配置: 启动时候报错: ERROR [KafkaServer id=0] Fatal error during Kafka ...

  10. Oracle-DQL 7- 集合操作

    集合操作: --将查询结果看作是一个集合,可以将多个查询结果之间用集合操作找出特点的数据--很多的集合操作可以使用条件的组合进行代替,集合操作的效率高于条件组合--某些复杂的查询结果只能通过集合操作得 ...