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
相关推荐
如意.75911 分钟前
【Linux开发工具实战】Git、GDB与CGDB从入门到精通
linux·运维·git
运维小欣42 分钟前
智能体选型实战指南
运维·人工智能
yy55271 小时前
Nginx 性能优化与监控
运维·nginx·性能优化
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ2 小时前
Linux 查询某进程文件所在路径 命令
linux·运维·服务器
05大叔3 小时前
网络基础知识 域名,JSON格式,AI基础
运维·服务器·网络
安当加密3 小时前
无需改 PAM!轻量级 RADIUS + ASP身份认证系统 实现 Linux 登录双因子认证
linux·运维·服务器
dashizhi20153 小时前
服务器共享禁止保存到本地磁盘、共享文件禁止另存为本地磁盘、移动硬盘等
运维·网络·stm32·安全·电脑
卷福同学4 小时前
【养虾日记】QClaw操作浏览器自动化发文
运维·人工智能·程序人生·自动化
woho7788995 小时前
不同网段IP的网络打印机,打印、扫描设置
运维·服务器·网络
耗子会飞5 小时前
小白学习固定VM虚拟机的centos服务器的IP
运维·服务器·centos