本文介绍通过源码编译安装Nginx。
1 环境准备
1.1 操作系统:
Centos 7.6
1.2 编译工具:
- GCC编译器(GNU Compiler Collection),用来编译(C语言程序)Nginx源代码。
- Automake工具。自动创建Makefile。
不需要安装AutoConf工具。Nginx软件的自动脚本不是用Autoconf工具生成的,而是作者手工编写的。yum -y install gcc gcc-c++ automake libtool make
1.3 插件库:
- pcre库(Perl Compatible Regular Expressions,Perl兼容正则表达式),Nginx的Http模块要靠它来解析正则表达式。(rewrite模块)。
ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/ 下载最新的 PCRE 源码包
cd /usr/local/src
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.44.tar.gz
tar -zxvf pcre-8.44.tar.gz
- zlib库,用于对Http包的内容做gzip格式的压缩,nginx.conf配置里配置 gzip on(gzip模块)。
http://zlib.net/zlib-1.2.11.tar.gz 下载最新的 zlib 源码包
cd /usr/local/src
wget http://zlib.net/zlib-1.2.11.tar.gz
tar -zxvf zlib-1.2.11.tar.gz
- openssl库(ssl模块)。Nginx通过它支持HTTPS请求。
cd /usr/local/src
wget https://www.openssl.org/source/openssl-1.1.1d.tar.gz
tar -zxvf openssl-1.1.1d.tar.gz
1.4 Nginx源码包。
http://nginx.org/en/download.html下载稳定版源码包,目前是nginx-1.16.1。
2 安装Nginx
- 将nginx源码包放在 /usr/local/src/ 目录下,解压。
- 进入解压后的源码目录,运行 configure 文件。
configure是Nginx软件的自动脚本程序,它会根据系统环境生成C代码和编译代码需要的Makefile文件。
with-http_ssl_module,声明启用http的ssl模块,用于支持https请求。启用这个模块需要安装openssl库。
with-pcre、with-zlib、with-openssl分别是指定pcre库、zlib库、OpenSSL库源码路径,这样可以在编译Nginx源代码的同时编译第三方库,可以不提前安装对应的第三方库。 - make,编译源代码。
- make install,安装Nginx。
cd /usr/local/src
tar -zxvf nginx-1.16.1.tar.gz
cd nginx-1.16.1
./configure --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.1d \
--with-http_stub_status_module
make
make install
备注:http_stub_status_module 模块用于监控nginx运行状态。可以配合zabbix使用。
运行以上默认配置后,nginx会被安装在 /usr/local/nginx 目录下。
cd /usr/local/nginx
ls -alh
包含如下文件夹:
drwxr-xr-x. 6 root root 54 8月 24 11:20 .
drwxr-xr-x. 22 root root 4.0K 8月 24 11:20 ..
drwxr-xr-x. 2 root root 4.0K 8月 24 11:22 conf
drwxr-xr-x. 2 root root 40 8月 24 11:20 html
drwxr-xr-x. 2 root root 6 8月 24 11:20 logs
drwxr-xr-x. 2 root root 19 8月 24 11:20 sbin
nginx 可执行文件在 /usr/local/nginx/sbin目录下,运行 /usr/local/nginx/sbin/nginx 文件,即可按照默认配置(/usr/local/nginx/conf/nginx.conf)启动nginx服务。
默认监听端口是80,启动成功后访问对应服务器的ip,看到如下页面,Nginx安装完成。
- 启动nginx后,安装目录(/usr/local/nginx)下会生成:client_body_temp、fastcgi_temp、logs、proxy_temp、scgi_temp、uwsgi_temp 文件夹
drwxr-xr-x. 11 root root 151 8月 24 11:24 .
drwxr-xr-x. 22 root root 4.0K 8月 24 11:20 ..
drwx------. 2 nobody root 6 8月 24 11:24 client_body_temp
drwxr-xr-x. 2 root root 4.0K 8月 24 11:24 conf
drwx------. 2 nobody root 6 8月 24 11:24 fastcgi_temp
drwxr-xr-x. 2 root root 40 8月 24 11:20 html
drwxr-xr-x. 2 root root 41 8月 24 11:26 logs
drwx------. 2 nobody root 6 8月 24 11:24 proxy_temp
drwxr-xr-x. 2 root root 19 8月 24 11:20 sbin
drwx------. 2 nobody root 6 8月 24 11:24 scgi_temp
drwx------. 2 nobody root 6 8月 24 11:24 uwsgi_temp
3 安装文件下载
https://gitee.com/thanksm/nginx_learn/tree/master/nginx_setup