准备工作

nginx可以使用各个平台的替换包来安装,此处介绍使用二进制编译安装,包括具体的编译参数信息。
正式开始前,编译环境gcc g ++开发库之类的需要提前装好,这里变成你已经装好。
ububtu平台编译环境可以使用以下指令

apt-get install build-essential
apt-get install libtool

centos平台编译环境使用如下指令
安装make:

yum -y install gcc automake autoconf libtool make

安装g ++:

yum install gcc gcc-c++

安装其它库

pcre,zlib,前者为了重写rewrite,并为了gzip压缩
安装PCRE库
https://ftp.pcre.org/pub/pcre/下载最新的PCRE源码包,使用下面的命令下载编译和安装
PCRE包:

cd /usr/local/src
wget https://ftp.pcre.org/pub/pcre/pcre-8.44.tar.gz 
tar -zxvf pcre-8.44.tar.gz
cd pcre-8.44
./configure
make
make install

安装zlib库
http://zlib.net/zlib-1.2.11.tar.gz下载最新的zlib源码包,使用下面的命令下载编译和安装
zlib包:

cd /usr/local/src

wget http://zlib.net/zlib-1.2.11.tar.gz
tar -zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure
make
make install

安装ssl(某些vps默认没装ssl)

cd /usr/local/src

wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz
tar -zxvf openssl-1.1.1g.tar.gz

安装nginx

Nginx一般有两个版本,分别是稳定版和开发版,您可以根据您的目的来选择这两个版本的其中一个,下面是把Nginx安装到/ usr / local / nginx目录下的详细步骤:

cd /usr/local/src
wget http://nginx.org/download/nginx-1.18.0.tar.gz
tar -zxvf nginx-1.18.0.tar.gz
cd nginx-1.18.0

./configure --sbin-path=/usr/local/nginx/nginx \
--conf-path=/usr/local/nginx/nginx.conf \
--pid-path=/usr/local/nginx/nginx.pid \
--with-http_gzip_static_module \
--with-http_stub_status_module \
--with-file-aio \
--with-http_realip_module \
--with-http_ssl_module \
--with-pcre=/usr/local/src/pcre-8.44 \
--with-zlib=/usr/local/src/zlib-1.2.11 \
--with-openssl=/usr/local/src/openssl-1.1.1g

make -j2
make install

--with-pcre = / usr / local / src / pcre-8.44指的是pcre-8.44的源码路径。--
with-zlib = / usr / local / src / zlib-1.2.11指的是zlib-1.2 .11的原始路径。

启动nginx

确保系统的80没没被其他程序占用,运行

/usr/local/nginx/nginx

命令来启动Nginx,

nginx编译选项

make是用来编译的,它从Makefile中读取指令,然后编译。

make install是用来安装的,它也从Makefile中读取指令,安装到指定的位置。

它定义了系统的各个方面,包括nginx的被允许使用的连接处理的方法,但它会检测到你不是有CC或GCC,而不需要CC或GCC,它是一个shell脚本,执行结束时,它会创建一个Makefile文件。nginx的配置命令支持以下参数:

--prefix=path 定义一个目录,存放服务器上的文件,也就是nginx的安装目录。可以使用 /usr/local/nginx。
--sbin-path=path 设置nginx的重置文件的路径,替换为 prefix/sbin/nginx。
--conf-path=path nginx允许使用不同的配置文件启动,通过命令行中的-c选项。设置为prefix/conf/nginx.conf。
--pid-path=path 设置nginx.pid文件,将存储的主进程的进程号。安装完成后,可以随时改变的文件名 , 在nginx.conf配置文件中使用 PID指令。默认情况下,文件名 为prefix/logs/nginx.pid。
--error-log-path=path 设置主错误,警告,和诊断文件的名称。安装完成后,可以随时更改的文件名,在nginx.conf配置文件中使用的error_log指令。或者情况下,文件名为prefix/logs/error.log。
--http-log-path=path 安装完成后,可以随时更改的文件名,在nginx.conf配置文件中使用的access_log指令。或者在情况下,文件名为prefix/logs/access.log。
--user=name 设置nginx工作进程的用户。安装完成后,可以随时更改的名称在nginx.conf配置文件中使用的用户指令。否则的用户名是nobody。
--group=name 设置nginx工作进程的用户组。安装完成后,可以随时更改的名称在nginx.conf配置文件中使用的用户指令。设置为非特权用户。
--with-select_module --without-select_module 启用或禁用构建一个模块来允许服务器使用select()方法。该模块将自动建立,如果平台不支持的kqueue,epoll,rtsig或/dev/poll。
--with-poll_module --without-poll_module 该模块将自动建立,如果平台不支持的kqueue,epoll,rtsig或/ dev / poll。
--without-http_gzip_module —不编译压缩的HTTP服务器的响应模块。编译并运行此模块需要zlib库。
--without-http_rewrite_module 不编译重构模块。编译并运行此模块需要PCRE库支持。
--without-http_proxy_module —不编译http_proxy模块。
--with-http_ssl_module —使用https协议模块。有时情况下,该模块没有被编译。建立并运行此模块的OpenSSL库是必需的。
--with-pcre=path —设置PCRE库的源码路径。PCRE库的源码(版本4.4-8.30)需要从PCRE网站下载并解压缩。其余的工作是Nginx的。/configure和make来完成。正则表达式使用位置指令和ngx_http_rewrite_module模块中。
--with-pcre-jit —编译PCRE包含“即时编译”(1.1.12中,pcre_jit指令)。
--with-zlib=path —设置的zlib库的内核路径。要下载从zlib(版本1.1.3-1.2.5)的并解压。其余的工作是Nginx的。/configure和make完成。ngx_http_gzip_module模块需要使用zlib。
--with-cc-opt=parameters 例如,当您在FreeBSD上使用PCRE库时需要使用:--with-cc-opt="-I /usr/local/include。。如需要需要增加 select()支持的文件数量:--with-cc-opt="-D FD_SETSIZE=2048".
--with-ld-opt=parameters —设置附加的参数,将用于链接期间。例如,当在FreeBSD下使用该系统的PCRE库时,应指定:--with-ld-opt="-L /usr/local/lib".
典型实例(以下为了展示需要写在多行,执行时内容需要在同一行

./configure
    --sbin-path=/usr/local/nginx/nginx
    --conf-path=/usr/local/nginx/nginx.conf
    --pid-path=/usr/local/nginx/nginx.pid
    --with-http_ssl_module
    --with-pcre=../pcre-4.4
    --with-zlib=../zlib-1.1.3
文章目录