Amosplanet

Stay Hungry, Stay Foolish

Nginx Installation

Nginx Installation

参考博客:

https://blog.csdn.net/Siebert_Angers/article/details/126960866

Introduction

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了 IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的 Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004 年10月4日。 其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、简单的配 置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。 Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3) 代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实 上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站 用户有:百度、京东、新浪、网易、腾讯、淘宝等。

安装Nginx

源码编译安装
一、安装nginx之前我们需要准备好安装nginx的安装环境
1.首先安装nginx要有gcc的环境,可以使用以下命令进行安装
yum install -y gcc

gcc 可以编译 C,C++,Ada,Object C和Java等语言(安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境)
2. 第三方库 pcre-devel 可以用以下命令进行安装
yum install -y pcre pcre-devel

PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。nginx的http模块使用pcre来解析正则表达式,所以需要在linux上安装pcre库。
注: pcre-devel是使用pcre开发的一个二次开发库。nginx也需要此库。
3. 第三方库 zlib 可以用以下命令进行安装
yum install -y zlib zlib-devel

zlib-devel zlib库提供了很多种压缩和解压缩方式nginx使用zlib对http包的内容进行gzip,所以需要安装
二、下载安装Nginx 安装包

官网下载地址:

https://nginx.org/download

1.下载Nginx 安装包
wget https://nginx.org/download/nginx-1.23.4.tar.gz
2.解压安装
tar zxvf nginx-1.23.4.tar.gz
3. 进入到解压好的目录中
cd nginx-1.23.4
4. 以下命令开始安装nginx
./configure --prefix=/usr/local/nginx // /usr/local/nginx 指定的安装目录

make
make install
5. 启动和端口问题
启动Nginx前需开放80端口

firewall-cmd --permanent --zone=public --remove-port=80/tcp

firewall-cmd --reload
5. 启动ngxin
cd /usr/local/nginx/sbin

./nginx					    // 启动nginx
./nginx -s stop			 	// 停止ngxin
./nginx -s quit 			    // 优雅的关闭nginx,在退出前完成已经接受的连接请求
./nginx -s reload 			// 重新加载ngxin配置
./nginx -s reopen             // 打开nginx日志文件
./nginx -t                    // 检测配置文件是否有语法错误
./nginx -v                    // 显示版本信息
./nginx -c [配置文件路径]      // 指定配置文件
killall nginx                // 杀死所有nginx的进程
ps -aux | grep nginx          // 查看nginx的进程
6. 将nginx安装成系统服务

1)创建服务脚本

使用以下命令在/usr/lib/systemd/system下创建并编辑nginx的服务脚本

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

将以下内容添加到刚刚创建好的脚本中 注意路径

[Unit]
Description=nginx - web server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
ExecQuit=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target

2)配置文件的权限

chmod 755 /usr/lib/systemd/system/nginx.service

3)重新加载系统服务

systemctl daemon-reload

4)启动Nginx

systemctl start nginx.service

5)开机启动

systemctl enable nginx.service
报错:

Failed to parse PID from file /usr/local/nginx/logs/nginx.pid: Invalid argument

Reason:

因为nginx启动需要时间,而systemd在nginx完成启动前就去读取pid file造成读取pid失败

Solution:

添加 ExecStartPost=/bin/sleep 0.1

Leave a Comment

Your email address will not be published. Required fields are marked *