mobile wallpaper 1
mobile wallpaper 2
mobile wallpaper 3
mobile wallpaper 4
723 字
2 分钟
CentOS7 Nginx安装配置
2021-10-25

Nginx (engine x) 是一个高性能、轻量级的HTTP和反向代理web服务器,其特点是占有内存少,并发能力强。

环境准备#

gcc#

gcc是linux下的编译器,可以编译 C,C++,Ada,Object C和Java等语言,一般阿里云centos7环境自带安装。

yum -y install gcc

pcre、pcre-devel安装#

pcre是一个perl库,包括perl兼容的正则表达式库,nginx的http模块使用pcre来解析正则表达式.

yum install -y pcre pcre-devel

gzip#

zlib库提供了很多种压缩和解压缩方式,nginx允许使用zlib对http包的内容进行gzip,避免资源过大加载过慢

yum install -y zlib zlib-devel

openssl#

openssl是web安全通信的基石,需要安装

yum install -y openssl openssl-devel

编译安装#

安装有直接yum安装和源码编译安装两种,个人更喜欢源码编译安装,以下为源码编译安装的步骤

安装#

Ngnix默认安装在/usr/local下,新建并切换至nginx目录

mkdir /usr/local/nginx && cd /usr/local/nginx

前往官网获取安装包下载路径:http://nginx.org/download/
nginx-1.21.3.tar.gz为例,获取安装包

wget http://nginx.org/download/nginx-1.21.3.tar.gz

解压

tar -zxvf nginx-1.21.3.tar.gz

编译#

进入解压后的文件夹

cd nginx-1.21.3

编译源码文件时,通过configure命令进行配置,若不添加参数,直接输入如下命令即可编译成功

./configure

如果需要配置时添加其他模块,需要在后面跟上相关配置,如配置https所必须的http_ssl_module模块

./configure --with-http_ssl_module

配置相关参数和模块可参考:http://www.weixueyuan.net/a/604.html
编译后执行安装命令,默认在/usr/local/创建nginx文件夹并安装到此位置

make
make install

这里因为我已经事先创建了nginx文件夹并处于/usr/local/nginx/nginx-1.21.3,所以nginx自动被安装到了上一层目录内,回到上一层目录

cd ..

配置环境变量#

nginx的执行文件位于/usr/local/ngnix/sbin,里面只有一个nginx,很好确认,为了方便操作我需要将他加入环境变量

新增nginx环境变量文件

vim /etc/profile.d/nginx.sh

配置文件内容

export PATH=$PATH:/usr/local/nginx/sbin

重启服务器生效

nginx常用相关参数#

nginx -s reload # 重新加载配置文件后,重启nginx
nginx -s reopen # 强制重启nginx
nginx -s quit # 处理完所有任务后,停止nginx
nginx -s stop # 强制停止nginx
nginx -t # 检测配置文件正确性
nginx -c filename #为nginx指定配置文件
nginx -v # 查看nginx版本信息
nginx -V # 查看nginx版本信息及配置模块信息

错误踩坑及处理#

nginx: [error] open() “/usr/local/nginx/logs/nginx.pid” failed (2: No such file or directory)

需要指定配置文件位置

nginx -c /usr/local/nginx/conf/nginx.conf

执行后再次执行nginx -s reload即可

注册为系统服务并开机自启动#

为了方便nginx应用进程的维护和管理,这里将其注册为系统服务,由systemd进行服务管理

新建nginx服务配置文件

vim /usr/lib/systemd/system/nginx.service

设置如下配置内容(记得删掉#后的注释)

[Unit]
Description = The Nginx HTTP and reverse proxy server
After = network.target remote-fs.target nss-lookup.target
[Service]
Type = forking
# Nginx服务的pid文件位置
PIDFile = /run/nginx.pid
# Nginx服务启动前删除旧的pid文件
ExecStartPre = /usr/bin/rm -f /run/nginx.pid
# Nginx服务启动前执行配置文件检测
ExecStartPre = /usr/local/nginx/sbin/nginx -t -q
ExecStart = /usr/local/nginx/sbin/nginx -g "pid /run/nginx.pid ;"
ExecReload = /usr/local/nginx/sbin/nginx -t -q
ExecReload = /usr/local/nginx/sbin/nginx -s reload -g "pid /run/nginx.pid ;"
ExecStop = /bin/kill -s HUP $MAINPID
KillSignal = SIGQUIT
TimeoutStopSec = 5
KillMode = process
PrivateTmp = true
[Install]
WantedBy = multi-user.target

详细配置文件内容参考另一篇文章centos系统服务相关

配置结束后执行下面命令就ok

# 注册为开机自启动服务
systemctl enable nginx
# 启动服务
systemctl start nginx

错误踩坑及处理#

错误信息:[error] invalid PID number "" in "/usr/local/nginx/logs/nginx.pid"

前往错误提示文件,发现为空文件

vim /usr/local/nginx/logs/nginx.pid

查看nginx运行的pid

ps -ef |grep nginx

nginx运行的pid 将获取的pid写入nginx.pid文件

echo 18628 > /usr/local/nginx/logs/nginx.pid

重新加载nginx

nginx -s reload

参考#

Nginx配置简述 - 微学苑

分享

如果这篇文章对你有帮助,欢迎分享给更多人!

CentOS7 Nginx安装配置
https://marrydream.top/posts/linux/centos7-nginx安装配置/
作者
茉铃
发布于
2021-10-25
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时

目录