CentOS 7.2 编译安装 Nginx1.12.2

 新闻资讯     |      2019-09-06

1、系统:CentOS最小化安装;升级软件补丁,内核和系统版本不升级;关闭SELinux和防火墙。系统安装可参考CentOS 7系统部署

2、软件:安装包统一放置在/usr/src目录下,安装位置统一在/usr/local目录下。

1、安装Nginx所需pcre库,官方网站。安装pcre库是为了使Nginx支持具备URL重写功能的Rewite模块,如不安装则Nginx无法使用此模块功能。

[root@localhost ~]# yum -y install pcre-devel
Loaded plugins: fastestmirror
base | 3.6 kB 00:00:00 
extras | 3.4 kB 00:00:00 
updates | 3.4 kB 00:00:00 
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
Resolving Dependencies
-- Running transaction check
--- Package pcre-devel.x86_64 0:8.32-17.el7 will be installed
-- Finished Dependency Resolution
Dependencies Resolved
===============================================================================================================================================================================================================
 Package Arch Version Repository Size
===============================================================================================================================================================================================================
Installing:
 pcre-devel x86_64 8.32-17.el7 base 480 k
Transaction Summary
===============================================================================================================================================================================================================
Install 1 Package
Total download size: 480 k
Installed size: 1.4 M
Downloading packages:
pcre-devel-8.32-17.el7.x86_64.rpm | 480 kB 00:00:00 
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
 Installing : pcre-devel-8.32-17.el7.x86_64 1/1 
 Verifying : pcre-devel-8.32-17.el7.x86_64 1/1 
Installed:
 pcre-devel.x86_64 0:8.32-17.el7 
Complete!

2、安装编译需要的组件

[root@localhost ~]# yum -y install zlib-devel openssl-devel
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
Resolving Dependencies
-- Running transaction check
--- Package openssl-devel.x86_64 1:1.0.2k-8.el7 will be installed
-- Processing Dependency: krb5-devel for package: 1:openssl-devel-1.0.2k-8.el7.x86_64
--- Package zlib-devel.x86_64 0:1.2.7-17.el7 will be installed
-- Running transaction check
--- Package krb5-devel.x86_64 0:1.15.1-8.el7 will be installed
-- Processing Dependency: libkadm5 = 1.15.1-8.el7 for package: krb5-devel-1.15.1-8.el7.x86_64
-- Processing Dependency: libverto-devel for package: krb5-devel-1.15.1-8.el7.x86_64
-- Processing Dependency: libselinux-devel for package: krb5-devel-1.15.1-8.el7.x86_64
-- Processing Dependency: libcom_err-devel for package: krb5-devel-1.15.1-8.el7.x86_64
-- Processing Dependency: keyutils-libs-devel for package: krb5-devel-1.15.1-8.el7.x86_64
-- Running transaction check
--- Package keyutils-libs-devel.x86_64 0:1.5.8-3.el7 will be installed
--- Package libcom_err-devel.x86_64 0:1.42.9-10.el7 will be installed
--- Package libkadm5.x86_64 0:1.15.1-8.el7 will be installed
--- Package libselinux-devel.x86_64 0:2.5-11.el7 will be installed
-- Processing Dependency: libsepol-devel = 2.5-6 for package: libselinux-devel-2.5-11.el7.x86_64
-- Processing Dependency: pkgconfig for package: libselinux-devel-2.5-11.el7.x86_64
--- Package libverto-devel.x86_64 0:0.2.5-4.el7 will be installed
-- Running transaction check
--- Package libsepol-devel.x86_64 0:2.5-6.el7 will be installed
-- Finished Dependency Resolution
Dependencies Resolved
===============================================================================================================================================================================================================
 Package Arch Version Repository Size
===============================================================================================================================================================================================================
Installing:
 openssl-devel x86_64 1:1.0.2k-8.el7 base 1.5 M
 zlib-devel x86_64 1.2.7-17.el7 base 50 k
Installing for dependencies:
 keyutils-libs-devel x86_64 1.5.8-3.el7 base 37 k
 krb5-devel x86_64 1.15.1-8.el7 base 266 k
 libcom_err-devel x86_64 1.42.9-10.el7 base 31 k
 libkadm5 x86_64 1.15.1-8.el7 base 174 k
 libselinux-devel x86_64 2.5-11.el7 base 186 k
 libsepol-devel x86_64 2.5-6.el7 base 74 k
 libverto-devel x86_64 0.2.5-4.el7 base 12 k
Transaction Summary
===============================================================================================================================================================================================================
Install 2 Packages 
Total download size: 2.3 M
Installed size: 4.6 M
Downloading packages:
: keyutils-libs-devel-1.5.8-3.el7.x86_64.rpm | 37 kB 00:00:00 
: libcom_err-devel-1.42.9-10.el7.x86_64.rpm | 31 kB 00:00:00 
: libkadm5-1.15.1-8.el7.x86_64.rpm | 174 kB 00:00:00 
: krb5-devel-1.15.1-8.el7.x86_64.rpm | 266 kB 00:00:00 
: libselinux-devel-2.5-11.el7.x86_64.rpm | 186 kB 00:00:00 
: libsepol-devel-2.5-6.el7.x86_64.rpm | 74 kB 00:00:00 
: libverto-devel-0.2.5-4.el7.x86_64.rpm | 12 kB 00:00:00 
: zlib-devel-1.2.7-17.el7.x86_64.rpm | 50 kB 00:00:00 
: openssl-devel-1.0.2k-8.el7.x86_64.rpm | 1.5 MB 00:00:00 
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 4.2 MB/s | 2.3 MB 00:00:00 
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
 Installing : libkadm5-1.15.1-8.el7.x86_64 1/9 
 Installing : libsepol-devel-2.5-6.el7.x86_64 2/9 
 Installing : libselinux-devel-2.5-11.el7.x86_64 3/9 
 Installing : libcom_err-devel-1.42.9-10.el7.x86_64 4/9 
 Installing : libverto-devel-0.2.5-4.el7.x86_64 5/9 
 Installing : keyutils-libs-devel-1.5.8-3.el7.x86_64 6/9 
 Installing : krb5-devel-1.15.1-8.el7.x86_64 7/9 
 Installing : zlib-devel-1.2.7-17.el7.x86_64 8/9 
 Installing : 1:openssl-devel-1.0.2k-8.el7.x86_64 9/9 
 Verifying : zlib-devel-1.2.7-17.el7.x86_64 1/9 
 Verifying : keyutils-libs-devel-1.5.8-3.el7.x86_64 2/9 
 Verifying : libverto-devel-0.2.5-4.el7.x86_64 3/9 
 Verifying : libselinux-devel-2.5-11.el7.x86_64 4/9 
 Verifying : krb5-devel-1.15.1-8.el7.x86_64 5/9 
 Verifying : libcom_err-devel-1.42.9-10.el7.x86_64 6/9 
 Verifying : libsepol-devel-2.5-6.el7.x86_64 7/9 
 Verifying : 1:openssl-devel-1.0.2k-8.el7.x86_64 8/9 
 Verifying : libkadm5-1.15.1-8.el7.x86_64 9/9 
Installed:
 openssl-devel.x86_64 1:1.0.2k-8.el7 zlib-devel.x86_64 0:1.2.7-17.el7 
Dependency Installed:
 keyutils-libs-devel.x86_64 0:1.5.8-3.el7 krb5-devel.x86_64 0:1.15.1-8.el7 libcom_err-devel.x86_64 0:1.42.9-10.el7 libkadm5.x86_64 0:1.15.1-8.el7 libselinux-devel.x86_64 0:2.5-11.el7 
 libsepol-devel.x86_64 0:2.5-6.el7 libverto-devel.x86_64 0:0.2.5-4.el7 
Complete!

3、创建软件配套专用的用户

[root@localhost ~]# useradd www -s /sbin/nologin -M

4、进入/usr/src目录下载并解压软件包

[root@localhost src]# cd /usr/src/
[root@localhost src]# wget http://nginx.org/download/nginx-1.12.2.tar.gz tar -zxf nginx-1.12.2.tar.gz
--2018-03-02 13:05:56-- http://nginx.org/download/nginx-1.12.2.tar.gz
Resolving nginx.org ... 206.251.255.63, 95.211.80.227, 2606:7100:1:69::3f, ...
Connecting to nginx.org |206.251.255.63|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 981687  [application/octet-stream]
Saving to: nginx-1.12.2.tar.gz 
100%[===================================================================================================================================================================== ] 981,687 8.26KB/s in 2m 10s 
2018-03-02 13:08:07  - nginx-1.12.2.tar.gz saved [981687/981687]

5、进入解压的软件目录并编译配置文件 ./configure user=www group=www prefix=/usr/local/nginx-1.12.2 with-mail_ssl_module with-http_stub_status_module with-http_ssl_module with-http_v2_module with-http_gzip_static_module with-http_sub_module

[root@localhost src]# cd nginx-1.12.2
[root@localhost nginx-1.12.2]# ./configure --user=www --group=www --prefix=/usr/local/nginx-1.12.2 --with-mail_ssl_module --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-http_sub_module
checking for OS
 + Linux 3.10.0-327.el7.x86_64 x86_64
checking for C compiler ... found
 + using GNU C compiler
 + gcc version: 4.8.5 20150623   
checking for gcc -pipe switch ... found
checking for -Wl,-E switch ... found
checking for gcc builtin atomic operations ... found
checking for C99 variadic macros ... found
checking for gcc variadic macros ... found
......此处省略......
checking for PCRE library ... found
checking for PCRE JIT support ... found
checking for OpenSSL library ... found
checking for zlib library ... found
creating objs/Makefile
Configuration summary
 + using system PCRE library
 + using system OpenSSL library
 + using system zlib library
 nginx path prefix: /usr/local/nginx-1.12.2 
 nginx binary file: /usr/local/nginx-1.12.2/sbin/nginx 
 nginx modules path: /usr/local/nginx-1.12.2/modules 
 nginx configuration prefix: /usr/local/nginx-1.12.2/conf 
 nginx configuration file: /usr/local/nginx-1.12.2/conf/nginx.conf 
 nginx pid file: /usr/local/nginx-1.12.2/logs/nginx.pid 
 nginx error log file: /usr/local/nginx-1.12.2/logs/error.log 
 nginx http access log file: /usr/local/nginx-1.12.2/logs/access.log 
 nginx http client request body temporary files: client_body_temp 
 nginx http proxy temporary files: proxy_temp 
 nginx http fastcgi temporary files: fastcgi_temp 
 nginx http uwsgi temporary files: uwsgi_temp 
 nginx http scgi temporary files: scgi_temp

6、编译及安装软件

[root@localhost nginx-1.12.2]# make make install
make -f objs/Makefile
make[1]: Entering directory `/usr/src/nginx-1.12.2 
cc -c -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
 -o objs/src/core/nginx.o \
 src/core/nginx.c
cc -c -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
 -o objs/src/core/ngx_log.o \
 src/core/ngx_log.c
cc -c -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
 -o objs/src/core/ngx_palloc.o \
 src/core/ngx_palloc.c
cc -c -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
 -o objs/src/core/ngx_array.o \
 src/core/ngx_array.c
cc -c -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
 -o objs/src/core/ngx_list.o \
 src/core/ngx_list.c
......此处省略......
cc -c -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
 -o objs/src/http/modules/ngx_http_upstream_least_conn_module.o \
 src/http/modules/ngx_http_upstream_least_conn_module.c
cc -c -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
 -o objs/src/http/modules/ngx_http_upstream_keepalive_module.o \
 src/http/modules/ngx_http_upstream_keepalive_module.c
cc -c -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
 -o objs/src/http/modules/ngx_http_upstream_zone_module.o \
 src/http/modules/ngx_http_upstream_zone_module.c
cc -c -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
 -o objs/src/http/modules/ngx_http_stub_status_module.o \
 src/http/modules/ngx_http_stub_status_module.c
cc -c -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
 -o objs/ngx_modules.o \
 objs/ngx_modules.c
cc -o objs/nginx \
objs/src/core/nginx.o \
objs/src/core/ngx_log.o \
objs/src/core/ngx_palloc.o \
objs/src/core/ngx_array.o \
objs/src/core/ngx_list.o \
......此处省略......
objs/src/http/modules/ngx_http_upstream_least_conn_module.o \
objs/src/http/modules/ngx_http_upstream_keepalive_module.o \
objs/src/http/modules/ngx_http_upstream_zone_module.o \
objs/src/http/modules/ngx_http_stub_status_module.o \
objs/ngx_modules.o \
-ldl -lpthread -lcrypt -lpcre -lssl -lcrypto -ldl -lz \
-Wl,-E
sed -e s|%%PREFIX%%|/usr/local/nginx-1.12.2| \
 -e s|%%PID_PATH%%|/usr/local/nginx-1.12.2/logs/nginx.pid| \
 -e s|%%CONF_PATH%%|/usr/local/nginx-1.12.2/conf/nginx.conf| \
 -e s|%%ERROR_LOG_PATH%%|/usr/local/nginx-1.12.2/logs/error.log| \
 man/nginx.8 objs/nginx.8
make[1]: Leaving directory `/usr/src/nginx-1.12.2 
make -f objs/Makefile install
make[1]: Entering directory `/usr/src/nginx-1.12.2 
test -d /usr/local/nginx-1.12.2 || mkdir -p /usr/local/nginx-1.12.2 
test -d /usr/local/nginx-1.12.2/sbin \
 || mkdir -p /usr/local/nginx-1.12.2/sbin 
test ! -f /usr/local/nginx-1.12.2/sbin/nginx \
 || mv /usr/local/nginx-1.12.2/sbin/nginx \
 /usr/local/nginx-1.12.2/sbin/nginx.old 
cp objs/nginx /usr/local/nginx-1.12.2/sbin/nginx 
test -d /usr/local/nginx-1.12.2/conf \
 || mkdir -p /usr/local/nginx-1.12.2/conf 
cp conf/koi-win /usr/local/nginx-1.12.2/conf 
cp conf/koi-utf /usr/local/nginx-1.12.2/conf 
cp conf/win-utf /usr/local/nginx-1.12.2/conf 
test -f /usr/local/nginx-1.12.2/conf/mime.types \
 || cp conf/mime.types /usr/local/nginx-1.12.2/conf 
cp conf/mime.types /usr/local/nginx-1.12.2/conf/mime.types.default 
test -f /usr/local/nginx-1.12.2/conf/fastcgi_params \
 || cp conf/fastcgi_params /usr/local/nginx-1.12.2/conf 
cp conf/fastcgi_params \
 /usr/local/nginx-1.12.2/conf/fastcgi_params.default 
test -f /usr/local/nginx-1.12.2/conf/fastcgi.conf \
 || cp conf/fastcgi.conf /usr/local/nginx-1.12.2/conf 
cp conf/fastcgi.conf /usr/local/nginx-1.12.2/conf/fastcgi.conf.default 
test -f /usr/local/nginx-1.12.2/conf/uwsgi_params \
 || cp conf/uwsgi_params /usr/local/nginx-1.12.2/conf 
cp conf/uwsgi_params \
 /usr/local/nginx-1.12.2/conf/uwsgi_params.default 
test -f /usr/local/nginx-1.12.2/conf/scgi_params \
 || cp conf/scgi_params /usr/local/nginx-1.12.2/conf 
cp conf/scgi_params \
 /usr/local/nginx-1.12.2/conf/scgi_params.default 
test -f /usr/local/nginx-1.12.2/conf/nginx.conf \
 || cp conf/nginx.conf /usr/local/nginx-1.12.2/conf/nginx.conf 
cp conf/nginx.conf /usr/local/nginx-1.12.2/conf/nginx.conf.default 
test -d /usr/local/nginx-1.12.2/logs \
 || mkdir -p /usr/local/nginx-1.12.2/logs 
test -d /usr/local/nginx-1.12.2/logs \
 || mkdir -p /usr/local/nginx-1.12.2/logs 
test -d /usr/local/nginx-1.12.2/html \
 || cp -R html /usr/local/nginx-1.12.2 
test -d /usr/local/nginx-1.12.2/logs \
 || mkdir -p /usr/local/nginx-1.12.2/logs 
make[1]: Leaving directory `/usr/src/nginx-1.12.2 

7、创建软链接

[root@localhost nginx-1.12.2]# ln -s /usr/local/nginx-1.12.2/ /usr/local/nginx

8、检查Nginx配置文件语法

[root@localhost nginx-1.12.2]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx-1.12.2/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx-1.12.2/conf/nginx.conf test is successful

9、把Nginx服务添加进启动自定义文件内并启动Nginx软件

echo /usr/local/nginx/sbin/nginx /etc/rc.local /usr/local/nginx/sbin/nginx

10、检查端口情况判断Nginx软件是否运行正常

[root@localhost nginx-1.12.2]# ss -lnat|grep 80
LISTEN 0 128 *:80 *:*

Web访问验证

CentOS 7.2 编译安装 Nginx1.12.2

1、当我们安装完Nginx程序后首先有几个参数需要调整下,需要调整的参数为user、worker_processes、worker_connections;Nginx主配置文件位于/usr/local/nginx/conf目录下的nginx.conf

[root@localhost conf]# vim nginx.conf
user www www; #指定运行Worker进程的用户和组,根据编译安装时指定的用户及组修改,默认为nobody;例如:user www www;
worker_processes auto; #常规调优选项 Worker线程的个数;通常应该为物理CPU核心个数减1;自动为auto
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;