一、nginx是什么
Nginx 是一款开源的、高性能的 HTTP 和反向代理服务器(中间件),可用于负载均衡,由 Igor Sysoev 所开发。
以下是 Nginx 的一些主要特点和优势:
1、高性能:能够处理大量并发连接,在高并发场景下表现卓越。
2、轻量级:资源消耗低,运行效率高。
3、反向代理:可以将客户端请求转发到后端的多个服务器上,实现负载均衡,提高系统的可用性和扩展性。
4、动静分离:有效地将静态资源(如图片、CSS、JavaScript 文件等)和动态内容(如 PHP、Python 脚本等)分开处理,提高服务器的性能。
5、灵活的配置:支持丰富的配置选项,能够满足各种复杂的业务需求。
6、缓存功能:可以对经常访问的内容进行缓存,减少服务器的负载,提高响应速度。
7、稳定性高:经过了广泛的实践和验证,具有出色的稳定性和可靠性。
由于其卓越的性能和丰富的功能,Nginx 在互联网行业中得到了广泛的应用,成为构建高效、可靠网络服务的重要工具之一。
二、安装nginx
2.1 yum安装
通过nginx官网了解,我们可以先在/etc/yum.repos.d文件夹下新建一个nginx.repo文件用于编写nginx源(如果你的服务器安装了epel源,就可以直接使用yum安装)
vim nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
安装nginx
yum install nginx
启动nginx
systemctl start nginx
设置开机自启
systemctl enable nginx
2.2 编译安装
进入一台新的web服务器(本次编译安装在web2服务器上进行)
新建/nginx文件夹,将源码包下载到文件夹中
mkdir /nginx
cd /nginx
curl -O https://nginx.org/download/nginx-1.26.1.tar.gz
解压源码包
tar xf nginx-1.26.1.tar.gz
configure 是一个nginx官方提供的一个进行编译配置的脚本,主要目的是收集用户的指定配置,收集参数。
例如: 用户可以指定安装位置,启用哪些模块(功能),不启用哪些模块(功能)
可以定制nginx这个软件
模块 | 功能 |
---|---|
–prefix=PATH | 指定安装路径 |
–user=USER | 指定启动woker进程的用户名 |
–group=GROUP | 指定启动woker进程的用户组 |
–with-http_ssl_module | 开启ssl功能,默认没有开启 |
–with-http_v2_module | 启用HTTP/2模块支持 |
–with-http_v3_module | 启用HTTP/3模块支持 |
–with-threads | 支持多线程功能 |
–with-stream | 支持反向代理功能 |
–with-http_stub_status_module | 状态统计功能 |
解决依赖的软件包
yum install gcc pcre-devel openssl-devel -y
配置工作
./configure --prefix=/usr/local/nginx-1 --user=duanfeiyu --group=duanfeiyu --with-http_ssl_module --with-http_v2_module --with-threads --with-stream --with-http_stub_status_module
启动2个进程去编译(根据自己cpu核数去选择,几核就选几个进程)
make -j 2
安装编译,将前面编译好的二进制文件和配置文件复制到/usr/local/nginx-1目录下
make install
新建用户duanfeiyu
useradd duanfeiyu -s /sbin/nologin
修改PATH环境变量,增加nginx的安装目录,方便找到安装的nginx
echo 'PATH=/usr/local/nginx-1/sbin/:$PATH' >>/etc/profile
source /etc/profile
启动nginx(注意关闭防护墙和停止selinux)
/usr/local/nginx-1/sbin/nginx
通过编译安装的nginx可以使用以下命令
命令 | 作用 |
---|---|
nginx -s stop | 停止nginx |
nginx -s reload | 重启nginx |
对于以上操作来进行nginx编译安装,我们可以将其写成shell脚本,方便以后的使用
vim install_nginx.sh
#!/bin/bash
#创建存放nginx源码的目录
mkdir -p /nginx
#进入目录,开始下载nginx源码包
cd /nginx
curl -O https://nginx.org/download/nginx-1.26.1.tar.gz
#解压源码包
tar xf nginx-1.26.1.tar.gz
cd nginx-1.26.1
#解决依赖的软件包
yum install gcc pcre-devel openssl-devel -y
#配置工作
./configure --prefix=/usr/local/nginx-1 --user=duanfeiyu --group=duanfeiyu --with-http_ssl_module --with-http_v2_module --with-threads --with-stream --with-http_stub_status_module
#启动2个进程去编译
make -j 2
#安装编译,将前面编译好的二进制文件和配置文件复制到/usr/local/nginx-1目录下
make install
#新建用户limingzhe
useradd duanfeiyu -s /sbin/nologin
#修改PATH环境变量,增加nginx的安装目录,方便找到安装的nginx
echo 'PATH=/usr/local/nginx-1/sbin/:$PATH' >>/etc/profile
source /etc/profile
#启动nginx
/usr/local/nginx-1/sbin/nginx
#firewalld and selinux
#stop firewall和设置下次开机不启动firewalld
service firewalld stop
systemctl disable firewalld
#临时停止selinux和永久停止selinux
setenforce 0
sed -i '/^SELINUX=/ s/enforcing/disabled/' /etc/sysconfig/selinux
2.3 设置编译安装的nginx开机自启
1、修改/etc/rc.local文件,在末尾加上/usr/local/nginx-1/sbin/nginx
给此文件一个可执行权限
chmod +x /etc/rc.d/rc.local
2、创建一个 nginx.service文件,让systemctl进行管理
cd /usr/lib/systemd/system
vim nginx.service
[Unit]
Description=nginx - high performance web server
[Service]
Type=forking
PIDFile=/usr/local/nginx-1/logs/nginx.pid
ExecStart=/usr/local/nginx-1/sbin/nginx -c /usr/local/nginx-1/conf/nginx.conf
ExecReload=/bin/sh -c "/bin/kill -s HUP $(/bin/cat $PIDFile)"
ExecStop=/bin/sh -c "/bin/kill -s TERM $(/bin/cat $PIDFile)"
[Install]
WantedBy=multi-user.target
重载配置文件
systemctl daemon-reload
使用killall nginx杀死前面使用nginx命令启动的nginx进程
killall nginx
启动nginx
systemctl start nginx
设置nginx开机自启
systemctl enable nginx
-
yum安装和编译安装的区别:
yum install nginx
配置文件: /etc/nginx
可执行的nginx二进制程序: /usr/sbin/nginx
网站目录: /usr/share/nginx/html编译安装的nginx
配置文件: /usr/local/nginx-1/conf
可执行的nginx二进制程序: /usr/local/nginx-1/sbin
网站目录: /usr/local/nginx-1/html