linux中Nginx安装

linux中Nginx安装

编译安装

​ Nginx的优点太多,这里不再赘述,详情请看这篇博客深入理解nginx

​ Nginx的安装有rpm包安装、编译安装和docker安装。本文将介绍编译安装方式。

1. 安装环境准备

1.0 更新yum

yum -y update

1.1 安装GCC编译器:

(用于编译c、c++代码)

yum install -y gcc

1.2 安装G plus plus编译器

yum install -y g++

1.3 安装PCRE库(用来解析正则表达式)

(用c语言编写的正则表达式函数库))

yum install -y pcre pcre-devel

1.4 安装zlib库

(用于数据压缩的函式库))

yum install -y zlib zlib-devel

1.5 安装openssl库

(安全套接字层密码库))

yum install -y openssl openssl-devel

2. 下载安装

2.1 下载nginx

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

2.2 编译nginx

tar -zxvf nginx-1.15.12.tar.gz 
cd nginx-1.15.12/
./configure
make
make install

2.3 查看安装位置

whereis nginx

2.4 启动nginx

cd /usr/local/nginx/
cd sbin/
./nginx 

3.nginx操作

修改配置后重新加载生效
/usr/local/nginx/sbin/nginx -s reload
开启nginx
/usr/local/nginx/sbin/nginx
快速停止nginx
/usr/local/nginx/sbin/nginx -s stop
完整有序的停止nginx
/usr/local/nginx/sbin/nginx -s quit

: stop和quit的区别在于
quit是一个优雅的关闭方式,Nginx在退出前完成已经接受的连接请求
Stop 是快速关闭,不管有没有正在处理的请求。

4. nginx加入systemctl服务

nginx安装完成后不能被系统管理,而且开机不能自启,这里设置nginx开机自启。

为了方便,现将nginx服务添加至systemctl

4.1 关闭nginx服务

/usr/local/nginx/sbin/nginx -s stop

4.2 更改nginx.conf

#pid        logs/nginx.pid;
更改为
pid        logs/nginx.pid;   

注意:

  • 这个参数为nginx运行时的pid号,这个配置为将pid号存入nginx.pid文件中,接下来的配置需要用到这个参数,所以取消注释。

  • 注意要保持此处和下面的配置路径时相同的。

  • 此处的路径时相对路径

4.2 配置服务

在/usr/lib/systemd/system/新建nginx.service文件,vim编辑如下

vim /usr/lib/systemd/system/nginx.service
[Unit]
Description=nginx - high performance 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

注意:

[Unit]部分主要是对这个服务的说明,内容包括Description和After,Description用于描述服务,After用于描述服务类别

[Service]部分是服务的关键,是服务的一些具体运行参数的设置,这里Type=forking是后台运行的形式,PIDFile为存放PID的文件路径ExecStart为服务的具体运行命令ExecReload为重启命令ExecStop为停止命令,PrivateTmp=True表示给服务分配独立的临时空间,注意:[Service]部分的启动、重启、停止命令全部要求使用绝对路径,使用相对路径则会报错

[Install]部分是服务安装的相关设置,可设置为多用户的

服务脚本按照上面编写完成后,以754的权限保存在/usr/lib/systemd/system目录下
然后执行。

注意修改或新增文件需要执行以下语句才能生效

systemctl daemon-reload
  • PIDFile这个参数很重要,要保持nginx.conf和nginx.service路径相同,注意此处的PIDFile为绝对路径。

4.3 启动、关闭、重启nginx

开启:

systemctl start nginx.service

关闭:

systemctl stop nginx.service

重新加载

systemctl reload nginx.service

优雅退出:

systemctl quit nginx.service

开机自启:

systemctl enable nginx.service

查看状态:

systemctl status nginx.service

注意:

上述配置,如果出现下面问题,请仔细查看教程,检查nginx.service和nginx.conf两个PID文件的路径是否对照。

posted @ 2019-11-27 15:23  胖墩哥  阅读(483)  评论(0编辑  收藏  举报