1. 首页
  2. 网站服务

CentOS7编译安装Nginx

近几年在工作中 Nginx 不论在哪公司都有在使用,安装部署、配置优化、日志分析这些工作内容我们应该熟练掌握,本次演示如何在 CentOS7 环境中采用源码编译安装的方式部署最新稳定版本的 Nginx。

1. 环境说明

操作系统版本内核版本Nginx 版本
CentOS 7.6.18103.10.0-957Nginx-1.14.2

2. 安装依赖包

$ yum -y install gcc gcc-c++ automake gd-devel pcre pcre-devel openssl openssl-devel zlib zlib-devel

3. 编译安装 Nginx

本次安装选择的官方稳定版本 nginx-1.14.2

1、创建 Nginx 用户

$ groupadd nginx
$ useradd -g nginx -s /sbin/nologin nginx

2、编译安装 Nginx

$ cd /usr/local/src/
$ wget http://nginx.org/download/nginx-1.14.2.tar.gz
$ tar xf nginx-1.14.2.tar.gz
$ cd nginx-1.14.2
$ ./configure --prefix=/usr/local/nginx \
--conf-path=/etc/nginx/nginx.conf \
--user=nginx \
--group=nginx \
--error-log-path=/var/log/nginx/error_log \
--http-log-path=/var/log/nginx/access_log \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--with-http_ssl_module \
--with-http_gzip_static_module \
--with-debug \
--with-http_stub_status_module
$ make -j `grep processor /proc/cpuinfo | wc -l` && make install

3、安装后配置

$ vim /etc/profile.d/nginx.sh
export PATH=/usr/local/nginx/sbin:$PATH
$ source /etc/profile.d/nginx.sh

4. Nginx编译参数说明

选项说明
–prefix=<path>指定nginx软件的安装路径,默认为/usr/local/nginx
—conf-path=<path>在未给定-c选项下,指定默认的nginx.conf路径。如果为指定默认为\<prefix>/conf/
—user=<user>指明运行nginx进程的用户;
—group=<group>指明运行nginx进程的属组;
—error-log-path指定默认的错误日志的路径;
—http-log-path指定默认访问日志的路径;
—pid-path指定默认的nginx.pid路径
—lock-path指定nginx.lock文件的路径,nginx.lock是nginx的锁文件。
—with-http_ssl_module生命启用 HTTP 的 ssl 模块,这样nginx服务器就可以支持HTTPS 请求了。依赖于openssl-d
—with-http_gzip_static_module支持在线实时压缩输出数据流
—with-debug声明启用 nginx 调试日志。
—with-http_stub_status_module声明启用 server status 状态页,默认不启用。

5. Nginx服务的启停控制

安装完 Nginx 服务后,直接运行 nginx 命令就可以启动 nginx 服务。Linux 平台下控制 nginx 启动和停止不只有一种方法。

通过服务的信号控制
nginx服务可接收的信号:

  • TREM或INT:快速停止 nginx 服务;
  • QUIT:平缓停止 nginx 服务;
  • HUP:使用新的配置文件启动进程,之后平缓停止原有进程,也就是所谓的平滑重启。
  • USR1:重新打开日志文件,常用于日志切割。
  • USR2:使用新版本的 nginx 文件启动服务,之后平缓停止原有 nginx 进程,也就是所谓的平滑升级。
  • WINCH:平缓停止 worker process,用于服务器平滑升级。

使用kill命令发送信号:

$ ps -ef | grep nginx
root     16486     1  0 16:08 ?        00:00:00 nginx: master process nginx
nginx    16488 16486  0 16:08 ?        00:00:00 nginx: worker process
root     16504 12202  0 16:08 pts/0    00:00:00 grep --color nginx
$ kill -QUIT 16486
$ ps -ef | grep nginx
root     16520 12202  0 16:08 pts/0    00:00:00 grep --color nginx

或者通过 nginx.pid 动态获取 PID 号:

$ cat /var/run/nginx/nginx.pid
16529
$ ps -ef | grep nginx
root     16529     1  0 16:14 ?        00:00:00 nginx: master process nginx
nginx    16530 16529  0 16:14 ?        00:00:00 nginx: worker process
root     16562 12202  0 16:15 pts/0    00:00:00 grep --color nginx
$ kill -QUIT `cat /var/run/nginx/nginx.pid`
$ ps -ef | grep nginx
root     16579 12202  0 16:15 pts/0    00:00:00 grep --color nginx

通过 Nginx 命令实现启动与停止 Nginx 服务:

nginx [option]
-v:打印 nginx 版本号;
-V:打印 nginx 版本号和编译 nginx 时所用的参数;
-t:对 nginx 配置文件做语法检查;
-c:启动时指定 nginx 配置文件路径;
-s signal:像 nginx 主进程发送信号;stop, reload;

启动 Nginx 服务

$ nginx
$ ps aux | grep nginx
root     16604  0.0  0.0  46008  1136 ?        Ss   16:19   0:00 nginx: master process nginx
nginx    16605  0.0  0.0  46464  1912 ?        S    16:19   0:00 nginx: worker process
root     16614  0.0  0.0 112724   976 pts/0    S+   16:19   0:00 grep --color nginx

停止 Nginx 服务

$ nginx -s stop
$ ps aux | grep nginx
root     16631  0.0  0.0 112724   972 pts/0    S+   16:21   0:00 grep --color nginx

平滑重启 Nginx 服务

$ nginx -s reload

至此 Nginx 安装以及启动与停止 Nginx 服务就结束了,后面会继续更新 Nginx 的配置文件以及 Nginx 的常用模块的用法。

原创文章,作者:恩志,如若转载,请注明出处:https://www.xbzdr.com/244.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注

联系我们

在线咨询:点击这里给我发消息

邮件:510749025@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code