Nginx编译安装

Posted WebArtisan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx编译安装相关的知识,希望对你有一定的参考价值。

编译安装

nginx编译还是非常简单的,首先保证机器具备编译环境安装好了gcc,make,automake等工具。CentOS可以用如下命令,一键安装。

yum group install "Development Tools"

然后安装相关依赖库,这点要夸夸nginx了,读文档提到nginx源码里面几乎已经包含了相关依赖代码,数据结构大部分自己实现不依赖系统C库,所以依赖非常少。但是还是依赖zlib、pcre、openssl开发库,文档里面说因为license原因不能放到源码包中,所要自己装。

 yum -y install pcre pcre-devel zlib zlib-devel openssl openssl-devel

然后是编译安装,configure阶段主要有三个参数:--prefix指定安装目录,这个目录之后也会是服务放置配置等文件的前缀目录、--with-<module-name>指定编译添加模块、--without-<module-name指定不编译模块。

nginx的模块是提前编译进去的,所以如果需要或者不需要某模块都要在编译阶段指定好,官方默认配置模块已经覆盖大部分场景了,显示的--with--without也很友好。

新版本nginx在逐渐支持动态链接库,所以以后添加模块也许不需要重新编译了。

# 进入源码目录
./configure --prefix=/tmp/nginx \
--with-http_ssl_module \
--with-http_v2_module

make && make install

tree -d /tmp/nginx

├── conf
│ ├── fastcgi.conf
│ ├── fastcgi.conf.default
│ ├── fastcgi_params
│ ├── fastcgi_params.default
│ ├── koi-utf
│ ├── koi-win
│ ├── mime.types
│ ├── mime.types.default
│ ├── nginx.conf
│ ├── nginx.conf.default
│ ├── scgi_params
│ ├── scgi_params.default
│ ├── uwsgi_params
│ ├── uwsgi_params.default
│ └── win-utf
├── html
│ ├── 50x.html
│ └── index.html
├── logs
└── sbin
└── nginx

命令参数

nginx version: nginx/1.20.1
Usage: nginx [-?hvVtTq] [-s signal] [-p prefix]
[-e filename] [-c filename] [-g directives]

Options:
-?,-h : this help
-v : show version and exit
-V : show version and configure options then exit
-t : test configuration and exit
-T : test configuration, dump it and exit
-q : suppress non-error messages during configuration testing
-s signal : send signal to a master process: stop, quit, reopen, reload
-p prefix : set prefix path (default: /tmp/nginx/)
-e filename : set error log file (default: logs/error.log)
-c filename : set configuration file (default: conf/nginx.conf)
-g directives : set global directives out of configuration file

常用参数:

  • -v 显示版本
  • -V 显示版本和编译时参数,需要查已经支持的module可以用这个参数
  • -t -T 测试配置文件可用
  • -p 这个参数需要留意,设置工作目录前缀,配置文件里面写没有 /的相对路径,会从这个目录开始如 logs/error.log,这个参数的默认参数和我们编译时的 --prefix一致
  • -c 指定配置文件,如果仅指定文件名如 -c nginx.conf,那么需要的路径就是从 -p参数开始
  • -s 发送信号,操作服务,stop停止服务,reopen重新打开日志,reload重新加载配置。

启动服务

编译安装好后使用默认配置文件启动

sudo /tmp/nginx/sbin/nginx -c conf/nginx.conf

测试

curl  http://127.0.0.1

停止

sudo /tmp/nginx/sbin/nginx -c conf/nginx.conf -s stop