“深入理解:从源码到系统,编译安装 Nginx 的完整指南“

一、nginx的介绍

· 作用

        Nginx是一个高性能的开源Web服务器,也可以用作反向代理服务器、负载均衡器、HTTP缓存以及作为通用的TCP/UDP代理。

· 特性

  1. 高性能: Nginx 设计简单而高效,能够处理大量并发连接,适用于高流量的网站和应用。

  2. 低内存消耗: Nginx 在处理连接时内存使用效率非常高,相比传统的Web服务器,它消耗更少的内存资源。

  3. 事件驱动: Nginx 使用事件驱动的异步架构,能够有效地处理大量并发请求,提高服务器的响应速度。

  4. 模块化架构: Nginx 具有模块化的设计,支持丰富的第三方模块,可以通过添加模块来扩展其功能。

  5. 反向代理和负载均衡: Nginx 可以作为反向代理服务器,将请求转发给后端服务器,也支持负载均衡,平衡多个后端服务器的负载。

  6. HTTP缓存: Nginx 提供强大的HTTP缓存功能,可以提高网站性能,减轻后端服务器负担。

  7. 灵活的配置: Nginx 的配置文件采用简洁的语法,易于理解和管理,支持动态重载配置,不需要停止服务。

  8. 安全性: Nginx 在设计上考虑了安全性,能够有效地防范一些常见的Web攻击,如DDoS攻击。

  9. 支持多协议: 除了HTTP和HTTPS,Nginx 还支持其他协议,如TCP和UDP,使其成为一个通用的代理服务器。

· nginx高效的原因

  • 基于异步非阻塞/异步IO模型

    • 异步、同步

      • 异步速度快

    • 非阻塞、阻塞

      • 阻塞

        • 进程必须等待磁盘IO完成

      • 非阻塞

        • 进程在等待磁盘IO的同时,可以处理其他事务

  • 基于epoll模型设计的

    • select

      • 周期性询问, 限制最大文件数1024

    • poll

      • 周期性询问,取消最大文件数的限制

    • epoll

      • 通知机制

· 工作原理

  • master process 主进程

    • 派生子进程、记录日志、重新加载配置文件

  • worker process 工作进程

    • 接收、处理客户端访问请求

二、nginx源码安装部署

1、下载nginx的安装包

下载链接:(1.18版本)

https://nginx.org/en/download.html

[root@localhost ~]# wget http://nginx.org/download/nginx-1.18.0.tar.gz

2、安装依赖

[root@localhost ~]# yum install -y gcc openssl-devel pcre-devel zlib-deve

3、编译安装nginx

[root@localhost ~]# tar xf nginx-1.18.0.tar.gz 
[root@localhost ~]# cd nginx-1.18.0/ 

[root@localhost nginx-1.22.1]# ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

[root@localhost nginx-1.18.0]# make && make install

三、 nginx相关文件目录

  • nginx安装目录/conf

    • 配置文件 nginx.conf主配置文件

  • nginx安装目录/logs

    • 存放日志

  • nginx安装目录/html

    • 默认网页目录

  • nginx安装目录/sbin

    • 二进制文件

四、nginx启动管理

1、启动nginx

[root@localhost ~]# /usr/local/nginx/sbin/nginx 

[root@localhost ~]# netstat -antp | grep nginx
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      9726/nginx: master  

[root@localhost ~]# ps -elf | grep nginx 
1 S root       9726      1  0  80   0 - 11499 sigsus 15:56 ?        00:00:00 nginx: master process /usr/local/nginx/sbin/nginx
5 S nginx      9727   9726  0  80   0 - 11612 ep_pol 15:56 ?        00:00:00 nginx: worker process

2、设置nginx开机自启动

[root@localhost ~]# sed -ri '$a \/usr/local/nginx/sbin/nginx' /etc/rc.d/rc.local
[root@localhost ~]# chmod a+x /etc/rc.d/rc.local

3、停止nginx

[root@localhost ~]# /usr/local/nginx/sbin/nginx -s stop

4、nginx重新加载配置文件

[root@localhost ~]# /usr/local/nginx/sbin/nginx -s reload

5、检测配置文件语法

[root@localhost ~]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

6、查看nginx版本

[root@localhost ~]# /usr/local/nginx/sbin/nginx -v
nginx version: nginx/1.18.0

7、查看nginx的配置参数

[root@localhost ~]# /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.18.0
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/nginx  --with-http_stub_status_module 

 关注我,下期讲讲nginx的虚拟主机的定义,以及nginx怎么来实现负载均衡的功能。

  • 18
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sam_hrk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值