nginx - nginx的安装部署

本文详细介绍了Nginx的安装过程,包括yum安装与编译安装的优缺点,并提供了编译安装的完整脚本。讲解了如何检查Nginx服务的状态,如通过端口、进程和命令。同时,列举了Nginx常用命令,如查看版本、重启服务等,以及进程间通信的方式。
摘要由CSDN通过智能技术生成

目录

什么是nginx?

1. nginx的安装

1.1  yum安装和编译安装的区别

1.1.1  yum安装的优点和缺点

1.1.2 编译安装的优点和缺点

1.2  nginx编译安装脚本

1.3  nginx的常用模块

1.4  怎么样判断nginx是否启动

1.4.1  看端口

netst8t -anplut命令

lsof -i:80 命令

ss -anplut命令

1.4.2  看进程

ps -aux | grep nginx

1.4.3  直接访问web服务器

 2. nginx常用命令

2.1 nginx -v 显示版本号

2.2  nginx -V 显示nginx的版本号和编译信息 

 2.3  nginx -s

2.3.1  nginx -s stop 关闭nginx进程

2.3.2  nginx -s quit  关闭nginx进程

2.3.3  nginx -s reload 重启nginx服务

2.3.4  nginx -s reopen 重新生成一个日志文件

2.3.5  进程与进程之间的几种通信方式:

2.4   nginx -t

2.5  捕捉信号脚本


什么是nginx?

nginx [engine x] is an HTTP and reverse proxy server, a mail proxy server, and a generic TCP/UDP proxy server

nginx是一个HTTP服务器,一个邮件服务器,反向代理服务器(负载均衡,缓存)第7层负载均衡,第4层的负载均衡

##########################################

1. nginx的安装

环境:centos 7.9.2009 系统

[root@www lianxi]# cat /etc/centos-release
CentOS Linux release 7.9.2009 (Core)

nginx版本:nginx-1.21.6

########################################## 

1.1  yum安装和编译安装的区别

1.1.1  yum安装的优点和缺点

yum安装的优点:

安装东西,方便快捷,不用考虑包依赖关系。

yum安装的缺点

安装过程人为无法干预,不能按需安装。源里面有什么就安装什么。

yum安装目录不集中,但基本遵循Linux文件夹的作用去划分文件,比如配置文件通常在/etc下,

日志文件通常在/var/log下面

##########################################

1.1.2 编译安装的优点和缺点

源码安装的优点:

编译安装过程,可以设定参数,按照需求,进行安装,并且安装的版本,可以自己选择,灵活性比较大。

编译安装目录集中,都在我们制定的安装路径下面。

源码安装的缺点:

由于安装包过新或者是其他问题,导致依赖的包没有,或者版本过低。这个时候就要解决包的依赖问题(可能需要花很多时间来踩坑解决包依赖关系),linux系统中有的包,一个依赖一个,可能装一个小东西,就要解决一堆包的依赖问题,花很多时间解决包的依赖问题,得不尝失。源码安装的多了,不敢升级系统,升级系统,可能会导致以前手动装的东西,不能用。
##########################################

1.2  nginx编译安装脚本

[root@www lianxi]# cat onekey_install_xueshanfeihu_Geoip_v10.sh 
#!/bin/bash

#解决软件的依赖关系,需要安装的软件包
yum install epel-release -y
yum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel gcc gcc-c++ autoconf automake make psmisc net-tools lsof vim geoip geoip-devel wget -y

#新建liming用户和组
id  liming || useradd liming -s /sbin/nologin

#下载nginx软件
mkdir  /liming99 -p
cd /liming99
wget  https://nginx.org/download/nginx-1.21.6.tar.gz

#解压软件
tar xf nginx-1.21.6.tar.gz 
#进入解压后的文件夹
cd nginx-1.21.6

#编译前的配置
./configure --prefix=/usr/local/scliming99  --user=liming --group=liming  --with-http_ssl_module   --with-threads  --with-http_v2_module  --with-http_stub_status_module  --with-stream  --with-http_geoip_module --with-http_gunzip_module

#如果上面的编译前的配置失败,直接退出脚本
if (( $? != 0));then
	exit
fi
#编译
make -j 2
#编译安装
make  install

#修改PATH变量
echo  "PATH=$PATH:/usr/local/scliming99/sbin" >>/root/.bashrc
#执行修改了环境变量的脚本
source /root/.bashrc


#firewalld and selinux

#stop firewall和设置下次开机不启动firewalld
service firewalld stop
systemctl disable firewalld

#临时停止selinux和永久停止selinux
setenforce 0
sed  -i '/^SELINUX=/ s/enforcing/disabled/' /etc/selinux/config

#开机启动
chmod +x /etc/rc.d/rc.local
echo  "/usr/local/scliming99/sbin/nginx" >>/etc/rc.local

#修改nginx.conf的配置,例如:端口号,worker进程数,线程数,服务域名

sed  -i '/worker_processes/ s/1/2/' /usr/local/scliming99/conf/nginx.conf
sed  -i  '/worker_connections/ s/1024/2048/' /usr/local/scliming99/conf/nginx.conf
sed  -i -r '36c \\tlisten  80;' /usr/local/scliming99/conf/nginx.conf
sed  -i -r '37c \\tserver_name www.liming.com;' /usr/local/scliming99/conf/nginx.conf

#killall nginx进程
killall -9 nginx

#启动nginx
/usr/local/scliming99/sbin/nginx



########################################## 

1.3  nginx的常用模块

--prefix=/usr/local/scliming99  指定nginx的安装路径

--user=liming   指定启动nginx的用户

--group=liming  指定启动nginx的组

--with-threads  启动线性池的使用

--with-file-aio    支持在FreeBSD和linux上使用异步文件 I/O(aio)

--with-http_ssl_module 启用构建将HTTPS协议支持添加到HTTP服务器的模块的功能,默认情况下未构建此模块,需要OpenSSL库来构建和运行此模块

--with-http_v2_module   支持构建提供对HTTP/2支持的模块,默认情况下未构建此模块

--with-http_stub_status_module  支持构建ngx_http_stub_status_module 模块,该模块提供对基本状态信息的访问,默认情况下未构建此模块

--with-stream  支持构建用于通过TCP/UDP代理和负载平衡的流模块,默认情况下未构建此模块

########################################## 

1.4  怎么样判断nginx是否启动

1.4.1  看端口

netst8t -anplut命令

[root@www lianxi]# netstat -anplut
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      999/sshd            
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1163/master         
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      16221/nginx: master 
tcp        0     36 192.168.44.130:22       192.168.44.1:51687      ESTABLISHED 20590/sshd: root@pt 
tcp        0      0 192.168.44.130:22       192.168.44.1:55632      ESTABLISHED 20315/sshd: root@pt 
tcp        0      0 192.168.44.130:22       192.168.44.1:54997      ESTABLISHED 20231/sshd: root@pt 
tcp6       0      0 :::22                   :::*                    LISTEN      999/sshd            
tcp6       0      0 ::1:25                  :::*                    LISTEN      1163/master         
udp        0      0 127.0.0.1:323           0.0.0.0:*                           672/chronyd         
udp6       0      0 ::1:323                 :::*                                672/chronyd    

########################################## 

lsof -i:80 命令

[root@www lianxi]# lsof  -i:80
COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
nginx   16221   root    6u  IPv4  78419      0t0  TCP *:http (LISTEN)
nginx   19953 liming    6u  IPv4  78419      0t0  TCP *:http (LISTEN)
nginx   19954 liming    6u  IPv4  78419      0t0  TCP *:http (LISTEN)

########################################## 

ss -anplut命令

[root@www lianxi]# ss -anplut
Netid  State      Recv-Q Send-Q Local Address:Port                Peer Address:Port              
udp    UNCONN     0      0          127.0.0.1:323                            *:*                   users:(("chronyd",pid=672,fd=5))
udp    UNCONN     0      0              [::1]:323                         [::]:*                   users:(("chronyd",pid=672,fd=6))
tcp    LISTEN     0      128                *:22                             *:*                   users:(("sshd",pid=999,fd=3))
tcp    LISTEN     0      100        127.0.0.1:25                             *:*                   users:(("master",pid=1163,fd=13))
tcp    LISTEN     0      128                *:80                             *:*                   users:(("nginx",pid=19954,fd=6),("nginx",pid=19953,fd=6),("nginx",pid=16221,fd=6))
tcp    LISTEN     0      128             [::]:22                          [::]:*                   users:(("sshd",pid=999,fd=4))
tcp    LISTEN     0      100            [::1]:25                          [::]:*                   users:(("master",pid=1163,fd=14))

########################################## 

1.4.2  看进程

ps -aux | grep nginx

[root@www lianxi]# ps aux | grep nginx
root      16221  0.0  0.2  48524  2120 ?        Ss   02:07   0:00 nginx: master process /usr/local/scliming99/sbin/nginx
liming    19953  0.0  0.2  49400  2612 ?        S    08:13   0:00 nginx: worker process
liming    19954  0.0  0.2  49400  2860 ?        S    08:13   0:00 nginx: worker process
root      20698  0.0  0.0 112824   988 pts/0    R+   18:12   0:00 grep --color=auto nginx

########################################## 

1.4.3  直接访问web服务器

可以访问nginx就已经开启

   

########################################## 

 2. nginx常用命令

2.1 nginx -v 显示版本号

[root@www lianxi]# nginx -v
nginx version: nginx/1.21.6

########################################## 

2.2  nginx -V 显示nginx的版本号和编译信息 

[root@www lianxi]# nginx -V
nginx version: nginx/1.21.6
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) 
built with OpenSSL 1.0.2k-fips  26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/usr/local/scliming99 --user=liming --group=liming --with-http_ssl_module --with-threads --with-http_v2_module --with-http_stub_status_module --with-stream --with-http_geoip_module --with-http_gunzip_module

########################################## 

 2.3  nginx -s

-s是一种信号(signal),是进程与进程之间通信的一种方式

2.3.1  nginx -s stop 关闭nginx进程

-s stop命令给正在运行的Nginx master进程发送TERM信号量来快速的关闭Nginx服务 

收到TERM信号量的进程会自我终结

########################################## 

2.3.2  nginx -s quit  关闭nginx进程

-s quit命令告诉Nginx正常处理完所有任务(关闭监听接口,停止接收新的链接,把当前的所有连接全部处理完)再停止进程。也就是说nginx会先处理完当前的任务再结束进程

########################################## 

2.3.3  nginx -s reload 重启nginx服务

修改了nginx的配置文件
相当于刷新服务
 启用新的配置
不会中断业务 --》工作中一般使用重启

########################################## 

2.3.4  nginx -s reopen 重新生成一个日志文件

2.3.5  进程与进程之间的几种通信方式:


管道
socket
信号量
消息队列
共享内存

########################################## 

2.4   nginx -t

测试nginx.conf 配置文件是否有错误

[root@www lianxi]# nginx -t
nginx: the configuration file /usr/local/scliming99/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/scliming99/conf/nginx.conf test is successful

########################################## 

2.5  捕捉信号脚本

当捕捉到 1 2 15 这三种信号的时候,执行命令  echo i am busy

[root@localhost signal]# cat sig.sh 
i=1
trap "echo i am busy" 1 2 15
while :
do
	((i++))
	echo $i
	sleep 1

done

##########################################

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值