Nginx搭建与配置:打造高性能Web服务器和反向代理_陈书予
Ngix是一个开源的高性能的HTTP服务器和反向代理服务器,它具有异步,事件驱动的架构,非常适合高流量的 Web 站点和 APIs 所需求的可扩展性,可靠性和高可用性的需要。本篇博客旨在帮助初学者配置Nginx,并重点介绍Nginx的核心配置参数。
目录
一、Nginx 的搭建
1.安装 Nginx
2.启动和检查nginx服务
3.配置防火墙
4.测试Nginx
二、Nginx 的核心配置
1.server
2.location
3.upstream
三、结论
一、Nginx 的搭建
1.安装 Nginx
以Ubuntu系统为例,可以使用以下命令安装nginx:
sudo apt update
sudo apt install nginx
2.启动和检查nginx服务
安装完成后,使用以下命令启动和检查nginx服务
sudo systemctl start nginx
sudo systemctl status nginx
命令运行后能够看到nginx运行状态为“active (running)”即为成功,如下例所示:
nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2021-11-16 23:29:20 +08; 10h ago
3.配置防火墙
如防火墙有开启,需添加nginx的规则使其可以通过防火墙访问。默认情况下,nginx使用的是TCP端口80和443,但我们可以在需要时更改它们。例如,如果要更改http协议使用的端口号,请编辑文件/etc/nginx/nginx.conf
并找到以下行:
listen 80 default_server;
将其更改为:
listen 8080 default_server;
4.测试Nginx
完成上述配置后,使用Web浏览器访问服务器IP地址、域名、主机名以确定Nginx 网站服务器是否正常运行。
二、Nginx 的核心配置
1.server
server指令是Nginx配置的一个基本模块,负责处理请求的分发。每个server指令包含了一组配置参数,在某个请求来到Nginx时,就会根据这些参数来处理该请求。
在Nginx中,server指令都放在 http
块之内,如下:
http {
server {
...
}
}
每个server块中关键指令有:
listen: 确定Nginx应使用的端口和协议进行监听server_name: 决定哪个请求应该由该server块处理root:确定该server块应为请求服务的文件系统路径index:用于确定当请求基于目录请求时,应使用哪个文件作为默认文档返回下面是一个简单的展示了server指令的核心功能:
http {
server {
listen 80;
server_name localhost;
root /var/www;
index index.html;
location / {
}
}
}
2.location
Nginx中的location指令可以匹配URI路径,并且能使Nginx处理这些请求。
在Nginx配置文件中,location指令通常语法为:
location uri {
...
}
其中uri可以是正则表达式或静态URI路径等类型。uri是用来匹配请求路径的。
location主要有以下三种类型:
location =:精确匹配请求字符串,匹配成功即停止匹配;location ~:正则表达式匹配,区分大小写;location ~*:正则表达式匹配,不区分大小写;下面是一个简单的展示了location指令的核心功能:
http {
server {
listen 80;
server_name localhost;
root /var/www;
index index.html;
location /pictures/ {
try_files $uri/index.html $uri =404;
}
location /downloads {
try_files $uri /downloads/index.html =404;
autoindex on; # 开启自动目录索引功能
}
}
}
在上面的示例中,我们通过location指令来处理不同的请求。例如,当来自 /pictures/ 路径的请求时,Nginx将尝试使用 $uri/index.html 和 $uri。 当来自 /downloads 路径的请求时,Nginx会跳转到 /downloads/index.html,也会启用自动索引功能。
3.upstream
在Nginx配置文件中,upstream指令用于定义后端服务。当一些请求到达Nginx,它通常会转发到充当反向代理的Web服务器。通过使用 upstream指令,可以在Nginx配置文件中定义这些反向代理服务器列表,以供随后使用。
在Nginx中,可以通过以下方法来配置upstream:
http {
upstream test_web_servers {
server 192.168.1.10:8080;
server 192.168.1.11:8080;
server 192.168.1.12:8080;
server 192.168.1.13:8080;
}
server {
location / {
proxy_pass http://test_web_servers;
}
}
}
在此示例中,我们使用 upstream 指令为一组反向代理服务器创建了一个列表,然后将其传递给proxy_pass指令,以便处理由 Nginx 转发到该服务器的所有请求。
除了proxy_pass指令以外,因为默认情况下,如果NGINX无法通过某些措施解决请求,就会出现“502 Bad Gateway”错误,因此upstream也有其他几个配置选项:
least_conn:轮询方法,选择最少连接的服务器ip_hash:IP哈希方法,为请求分配服务器keepalive:消息保持连接时限,保持连接池打开的最大空闲连接的最大数量等、三、结论
本篇博客展示了Nginx的基本搭建,以及核心配置文件的重要指令,能够对于初学者来说能够作为一个入门指南。这些配置可以使您开始运行专业的Web服务器,也可以通过更改参数来优化,以获得更好的性能和可靠性的体验。实践中,您还可能根据需要自定义其他指令,以满足特定的需求和需求。
相关文章
- Canopy聚类、层次聚类、密度聚类-DBSCAN_PD我是你的真爱粉
- 300道SpringCloud面试题2022(面试题及答案)_架构师专栏_springcloud面试题
- Ubuntu18.04配置carla0.9.11踩坑与解决方法总结,同时解决安装carla-ros-bridge遇到的问题,并复现OpenCDA成功与ros关联_kxk_ustc
- 聚类系列算法进阶(一)18_samll-guo
- 研究性论文_基于层次聚类方法的流量异常检测_过动猿
- 数学建模学习(57):K-Means聚类原理分析讲解与应用_川川菜鸟_k均值聚类分析建模
- Android Studio Chipmunk 发布啦,快来看看有什么更新_恋猫de小郭
- 目标检测算法??YOLOv5结合BotNet(Transformer)_加勒比海带66_botnet代码
- 基于MATLAB的模糊聚类_RiccDo_matlab模糊聚类
- ios应用程序加载分析(一)_i_erlich
- 号称最难用的布局CoordinatorLayout实现标题栏折叠吸顶_Awesome_lay_coordinatorlayout吸顶
- 【Flutter】shared_preferences 本地存储 ( 简介 | 安装 shared_preferences 插件 | 使用 shared_preferences 流程 )_韩曙亮_sh
- 【聚类】一种自适应Eps和Minpts的DBSCAN方法的改进(python实现)_qq_47150350
- R语言Kmeans聚类、抽取聚类簇:fpc包clusterboot函数通过bootstrap重采样的方法评估Kmeans聚类的稳定性、fpc包的kmeansruns函数通过CH准则和ASW获取最优K值
- K-Means算法实现网页聚类_Natuki丶_网页聚类
- Flutter实战篇(1):使用第三方极光认证一键登录_As.Kai_flutter 极光一键登录