Nginx 入门指南:理解、配置和优化

本文最后更新于:5 个月前

破冰

🥣 推荐阅读:

Nginx是什么

  • 官⽅解析 :
1
Nginx(发⾳为“engine-x”)是⼀个⾼性能的开源 Web 服务器和反向代理服务器,可以处理⼤ 量的并发连接和请求。它使⽤事件驱动的异步架构和多线程设计,可以⾼效地处理并发请求, 同时也⽀持反向代理、负载均衡、动态HTTP缓存、SSL/TLS终⽌、基于模块的扩展等功能。
  • Nginx 的应⽤场景⾮常⼴泛,以下是其中的⼏个:

  • Web 服务器:Nginx 可以作为 HTTP 服务器,处理并发的静态请求和动态请求,并且可 以⽀持负载均衡和缓存,为⽹站提供⾼性能和⾼可⽤性。

  • 反向代理服务器:Nginx 可以作为反向代理服务器,接收客户端请求并将其转发到后端服 务器,同时也可以⽀持负载均衡和缓存。

  • 邮件代理服务器:Nginx 可以作为邮件代理服务器,⽀持 POP3、IMAP 和 SMTP 协议, 并且可以⽀持 SSL/TLS 加密和反垃圾邮件功能。

  • 流媒体服务器:Nginx 可以作为流媒体服务器,⽀持 RTMP、HLS 和 DASH 协议,可以 ⽤于实现直播、点播和视频-on-demand(VoD)等场景。

  • 总之,Nginx 具有⾼性能、可扩展性和可靠性等特点,被⼴泛应⽤于⼤型⽹站、互联⽹公司、 云计算、视频流媒体、游戏等领域

思维碰撞

Nginx简介和安装

  • 了解 Nginx:功能、优势和应用场景

简介

  • 这篇关于Nginx的介绍是我看过最详细的了:Nginx 学习-KuangStudy-文章
  • 这里我就不详细展开说了,网上的资料对Nginx都有着详尽的介绍,我仅依照自己的理解,给出我对Nginx的认识:
  • Nginx是一个高性能的HTTP和反向代理web服务器,它的特点是负载均衡、反向代理

安装

windows安装

  • Nginx官网下载:nginx: download
  • 只需在官网下载安装包,在本地解压即可

本地Linux原始安装

宝塔Linux一键安装

  • 不论是云服务器还是本地服务器,宝塔Linux都是一键安装的,省去了大部分繁琐的配置
  • 你可以在登录宝塔面板之后,在软件商店里下载安装:
image-20230622143528026
  • 也可以在终端里,像本地Linux服务器一样,使用命令安装配置Nginx

服务启停

  • 学会安装、启动和停止 Nginx 服务
  • 这里补充下Nginx常用命令:
1
nginx 					# 启动Nginx 
1
nginx -c filename  		# 指定配置⽂件 
1
nginx -V 				# 查看Nginx的版本和编译参数等信息 
1
nginx -t 				# 检查配置⽂件是否正确,也可⽤来定位配置⽂件的位置 
1
nginx -s quit 			# 优雅停⽌Nginx
1
nginx -s stop 			# 快速停⽌Nginx
1
nginx -s reload 		# 重新加载配置⽂件 
1
nginx -s reopen 		# 重新打开⽇志⽂件

配置文件

🔥 推荐阅读:

反向代理和负载均衡

  • Nginx 反向代理和负载均衡:有效分发流量
  • 我们在本地的4000、5173、8080三个端口开启静态站点服务:

image-20230708095447602

image-20230708095520028

image-20230708095552638

  • 在nginx.conf文件下,分别开放8887、8888、8889端口,反向代理三个静态站点服务
  • 详细配置如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
http {
include mime.types;
default_type application/json;

sendfile on;

keepalive_timeout 65;

upstream memory-blog {
server localhost:4000;
}

upstream memory-docs1 {
server localhost:5173;
}

upstream memory-docs2 {
server localhost:8080;
}

server {
listen 8887;
server_name localhost;

location / {
proxy_pass http://memory-blog;
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}

server {
listen 8888;
server_name localhost;

location / {
proxy_pass http://memory-docs1;
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}


server {
listen 8889;
server_name localhost;

location / {
proxy_pass http://memory-docs2;
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
  • 有关配置的详细讲解,在配置文件👆一栏中了解
  • 修改完配置,我们重新加载配置文件,并启动Nginx服务
1
nginx -s reload 
1
nginx
  • 分别访问本地8887、8888、8889端口:

image-20230708100936095

image-20230708100544510

image-20230708100612584

  • 可以看到,我们开启了Nginx服务,只需访问Nginx给我们开放的端口,就能够访问到对应服务器,获取页面数据
  • 这是因为Nginx将我们的请求转发给了服务器,而用户是无感知的,这就是Nginx反向代理

静态网站部署

HTTPS配置

  • 使用 Nginx 配置 HTTPS:安全加密通信

虚拟主机

  • Nginx 虚拟主机配置:多个网站共享一台服务器

踩坑经历

访问Nginx403错误

  • 开启错误日志:
image-20230622154707468
  • 查看错误日志,发现问题所在:
image-20230622154920109 image-20230622155144376
  • 然后访问Nginx(记得nginx -s reload),访问成功,大功告成
  • 这就是访问Nginx发生403错误的具体解决办法了,很有收获

总结


Nginx 入门指南:理解、配置和优化
http://example.com/2023/06/22/Nginx 入门指南:理解、配置和优化/
作者
Memory
发布于
2023年6月22日
更新于
2023年12月15日
许可协议