Nginx

什么是nginx

Nginx是一款由俄罗斯的程序设计师Igor Sysoev使用c语言开发的高性能HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。其特点是占有内存少,并发能力强,资源消耗非常低,事实上nginx的并发能力在同类型的网页服务器中表现较好。在中国大陆使用nginx网站用户有:百度、京东、腾讯、淘宝等。

编译安装nginx

1.关闭防火墙,将安装nginx所需软件包传到/opt目录下

bash 复制代码
systemctl stop firewalld  #关闭防火墙
systemctl disable firewalld  #禁用firewalld服务的命令
setenforce 0   #关闭安全机制
vim /etc/selinux/config #永久关闭

2.安装依赖包

bash 复制代码
yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++ make
#nginx的配置及运行需要pcre、zlib、openssl等软件包的支持,因此需要安装这些软件的开发包,以便提供相应的库和头文件。

3.创建运行用户、组

bash 复制代码
useradd -M -s /sbin/nologin nginx
#创建运行用户、组(Nginx 服务程序默认以 nobody 身份运行,建议为其创建专门的用户账号,以便更准确地控制其访问权限)

4.编译安装nginx(安装包可以在nginx官网下载官方源)

cd /opt

tar zxvf nginx-1.24.0.tar.gz -C /opt/

cd nginx-1.24.0/

bash 复制代码
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module

./configure \
--prefix=/usr/local/nginx \							#指定nginx的安装路径
--user=nginx \										#指定用户名
--group=nginx \										#指定组名
--with-http_stub_status_module						#启用 http_stub_status_module 模块以支持状态统计

make && make install

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/		#让系统识别nginx的操作命令

5.检查配置语法 启动、重启、停止 nginx服务

bash 复制代码
nginx -t   #检查配置文件是否配置正确
nginx  #启动
cat /usr/local/nginx/logs/nginx.pid #先查看nginx的PID号 
   #关闭nginx
kill -3 <PID号>
kill -s QUIT <PID号>
killall -3 nginx
killall -s QUIT nginx
#重载
kill -1 <PID号>
kill -s HUP <PID号>
killall -1 nginx
killall -s HUP nginx
#日志分割,重新打开日志文件
kill -USR1 <PID号>
#平滑升级
kill -USR2 <PID号>

平滑升级

新版本升级

1.在官网下载软件 复制到opt

bash 复制代码
tar zxvf nginx-1.25.3.tar.gz -C /opt/  #解压到opt目录下

cd nginx-1.25.3/

./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module 


make

mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_old

cp objs/nginx /usr/local/nginx/sbin/nginx

make upgrade  #要保证当前 nginx 进程是通过 /usr/local/nginx/sbin/nginx 启动的,而不是通过查找环境变量中那个 nginx 命令启动的
#或者先 killall nginx ,再/usr/local/nginx/sbin/nginx

nginx -v #查看版本

这里关闭了nginx,重新使用/usr/local/nginx/sbin/nginx 运行的

添加 Nginx 系统服务

实现使用systemd控制nginx

bash 复制代码
vim /etc/init.d/nginx
#!/bin/bash
#chkconfig: - 99 20   #运行级别-
#description:Nginx Service Control Script
COM="/usr/local/nginx/sbin/nginx"
PID="/usr/local/nginx/logs/nginx.pid"
case "$1" in
start)
  $COM
;;

stop)
  kill -s QUIT $(cat $PID)
;;

restart)
  $0 stop
  $0 start
;;

reload)
  kill -s HUP $(cat $PID)
;;

*)
echo "Usage: $0 {start|stop|restart|reload}"
exit 1

esac
exit 0


chmod +x /etc/init.d/nginx
chkconfig --add nginx							
systemctl stop nginx
systemctl start nginx

直接打开运行级别3 和 5

bash 复制代码
chkconfig --level 35 nginx on
chkconfig --list nginx

认识Nginx服务的主配置文件 nginx.conf

1、全局块:全局配置,对全局生效;

2、events块:配置影响 Nginx 服务器与用户的网络连接;

3、http块:配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置;

4、server块:配置虚拟主机的相关参数,一个 http 块中可以有多个 server 块;

5、location块:用于配置匹配的 uri ;

6、upstream:配置后端服务器具体地址,负载均衡配置不可或缺的部分

bash 复制代码
vim /usr/local/nginx/conf/nginx.conf
相关推荐
知已难寻4 小时前
Docker 入门:容器技术与 Docker 基础
java·运维·服务器·docker·云原生·容器
Alluxio12 小时前
Alluxio + OCI:为 AI 工作负载实现亚毫秒访问延迟与可扩展吞吐
运维·数据库·人工智能·分布式·缓存·ai·语言模型
Sayai16 小时前
Neo4j 图数据质量检查实战:环路检测、孤立节点与连通分量,两条 Cypher 引出的数据体检清单(含变长路径性能陷阱)
运维·neo4j·图数据库·数据质量·cypher
Elastic 中国社区官方博客17 小时前
更少的位数,相同的召回率:DiskBBQ 更保守的自动校准扫描
大数据·运维·开发语言·人工智能·elasticsearch·搜索引擎
方便面不加香菜17 小时前
Docker Volume -- 管理卷Volume详解
运维·docker·容器
沫璃染墨17 小时前
从零入门计算机网络系列(十八):TCP连接管理详解——从三次握手与四次挥手到TIME_WAIT机制
运维·服务器·网络·c++·网络协议·tcp/ip·tcp
Felven18 小时前
华为鲲鹏920s芯片serdestool工具使用说明
linux·运维·服务器·华为·鲲鹏920·serdestool
江湖有缘18 小时前
Docker实战 | 使用Docker部署lemonitor镜像站点列表程序
运维·docker·容器
莫晓燚18 小时前
mall 电商项目完整部署---实战
linux·运维·docker·容器
爱和冰阔落18 小时前
【Linux网络】JsonCpp 怎么实现序列化?从 Request/Response 到网络计算器消息设计
linux·运维·网络·php