思维导图
第一部分:入门篇
1.1 起步
Nginx是一个轻量级高性能的开源Web服务器和反向代理服务器,由俄罗斯的程序设计师Igor Sysoev创建并维护。Nginx能够更好地处理高并发的网络流量,因此非常适用于处理大型的网站、高并发的API和网页应用。
下载和安装Nginx
Nginx的官方网站提供了针对各种操作系统的完整安装说明,您可以从官方网站下载和安装Nginx:https://nginx.org/en/download.html
或者,可以通过包管理器来安装Nginx,如:
- 在Ubuntu系统中,可以使用
apt-get
来安装:sudo apt-get install nginx
- 在CentOS/RHEL系统中,可以使用
yum
来安装:sudo yum install nginx
启动Nginx
在安装Nginx之后,您可以使用以下命令来启动Nginx:
sudo systemctl start nginx
Nginx配置文件
Nginx的配置文件位于/etc/nginx
目录下(系统和安装方式的不同可能会导致目录位置不同)。配置文件默认名字为nginx.conf
,它是关于http
、server
、location
和其它信息的主要配置文件。
在默认的配置文件中,Nginx监听的端口为80。如果您需要将Nginx的监听端口改为8080端口,可以使用以下配置:
server { listen 8080; server_name localhost; location / { root /var/www/html; index index.html; } }
在上述配置中,我们使用listen
来指定Nginx监听端口为8080,并使用location
来指定Nginx将请求映射到的文件路径。
Nginx命令行
在使用Nginx时,有时需要使用命令行工具来进行管理和配置。以下是一些常用的Nginx命令:
- 启动Nginx:
sudo systemctl start nginx
- 停止Nginx:
sudo systemctl stop nginx
- 重新启动Nginx:
sudo systemctl restart nginx
- 检查Nginx配置的正确性:
sudo nginx -t
- 重新加载Nginx配置:
sudo systemctl reload nginx
总结
在这个起步入门部分中,我们回顾了Nginx的概述和核心思想,介绍了如何下载和安装Nginx,以及如何启动和配置Nginx。在接下来的学习中,我们将探究Nginx更多的高级特性,掌握更多的操作和配置技巧。
1.2 Nginx的基本架构
Nginx是一个高性能的Web服务器和反向代理服务器,它的基本架构如下:
- Master进程:运行在主控制台上,负责读取配置文件,创建Worker进程和实现其他功能。
- Worker进程:实际处理客户端请求的核心进程。每个Worker进程可以处理多个客户端的连接。Worker进程可以通过fork()创建子进程来实现高并发处理。
- Event模块:负责管理和监控socket文件描述符,提供网络事件驱动机制。实现高性能、低延迟的网络I/O模型。
- HTTP模块:基于HTTP协议实现的Web服务器模块。支持静态文件和动态内容的处理,同时也提供了反向代理能力。
- Cache模块:用于缓存静态文件和反向代理的响应结果,提高性能。
- Load Balancer模块:支持负载均衡的反向代理模块,支持多种负载均衡算法。
总体来说,Nginx的基本架构设计简洁灵活,模块化程度高,可以通过添加或删除不同模块,来满足不同的需求。
1.3 安装和配置Nginx
安装Nginx:
在Linux系统中,安装Nginx可以通过包管理工具来安装,如在Ubuntu系统中可以通过以下命令来安装:
sudo apt-get update sudo apt-get install nginx
在CentOS系统中可以通过以下命令来安装:
sudo yum install epel-release sudo yum install nginx
配置Nginx:
Nginx的配置文件位于/etc/nginx/nginx.conf
文件中。可以通过编辑该文件来进行配置。
- 修改工作进程数
在默认情况下,Nginx会启动一个Master进程和多个Worker进程,可以通过以下配置来修改Worker进程数:
worker_processes 2;
- 配置虚拟主机
Nginx可以通过虚拟主机的方式来支持多个域名或IP地址,每个虚拟主机可以有独立的配置,可以通过如下配置创建虚拟主机:
server { listen 80; server_name example.com; root /var/www/example.com/public_html; }
- 配置负载均衡
Nginx提供了多种负载均衡算法,可以通过如下配置来启用负载均衡:
upstream backend { server backend1.example.com weight=5; server backend2.example.com; } server { listen 80; server_name example.com; location / { proxy_pass http://backend; } }
上述配置表示将请求通过反向代理转发到名为backend
的服务器组中,并根据后端服务器的权重进行负载均衡。
- 配置SSL证书
Nginx支持使用SSL证书来加密和保护通信安全,可以通过如下配置来启用SSL证书:
server { listen 443 ssl; server_name example.com; ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/key.pem; location / { proxy_pass http://backend; } }
上述配置启用了HTTPS协议,并指定了SSL证书和私钥的路径。
在修改完配置文件后需要重启Nginx服务才能生效:
sudo systemctl restart nginx
1.4 Nginx的基本操作
以下是Nginx的几个基本操作:
- 检查Nginx状态
可以通过以下命令来检查Nginx的运行状态:
sudo systemctl status nginx
如果Nginx正在运行,则系统会返回Nginx正在运行的信息,如下:
nginx.service - nginx - high performance web server Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled) Active: active (running) since Mon 2021-05-17 16:45:09 CST; 4h 45min ago Main PID: 21976 (nginx) CGroup: /system.slice/nginx.service ├─21976 nginx: master process /usr/sbin/nginx └─21977 nginx: worker process
- 停止或重启Nginx
如果需要停止或重启Nginx,可以使用以下命令:
停止Nginx:
sudo systemctl stop nginx
重启Nginx:
sudo systemctl restart nginx
- 测试Nginx配置文件
在修改Nginx的配置文件后,需要通过以下命令来测试配置文件是否正确:
sudo nginx -t
如果配置文件正确,则系统会返回如下信息:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
- 查看Nginx访问日志
Nginx的访问日志位于/var/log/nginx/access.log
文件中,可以通过以下命令来实时查看访问情况:
sudo tail -f /var/log/nginx/access.log
- 查看Nginx错误日志
Nginx的错误日志位于/var/log/nginx/error.log
文件中,可以通过以下命令来查看最近的错误信息:
sudo tail -n 50 /var/log/nginx/error.log
以上是Nginx的几个基本操作,可以通过这些命令来管理和调试Nginx服务器。
【利用AI让知识体系化】万字深入浅出Nginx(二)https://developer.aliyun.com/article/1426055