Nginx 是一个高性能的开源反向代理服务器和 Web 服务器

本文涉及的产品
网络型负载均衡 NLB,每月750个小时 15LCU
传统型负载均衡 CLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
简介: Nginx 是一个高性能的开源反向代理服务器和 Web 服务器

Nginx 是一个高性能的开源反向代理服务器和 Web 服务器。它可以用来处理静态文件、负载均衡、反向代理、HTTP 缓存、SSL 终结等任务。以下是一些常见的 Nginx 转发和代理配置示例:

1. 静态文件服务器配置

假设你有一个静态网站,可以使用 Nginx 来直接提供静态文件服务:

server {
   
    listen 80;
    server_name example.com;

    root /var/www/html;  # 静态文件存放的根目录

    location / {
   
        try_files $uri $uri/ =404;
    }
}
  • listen 指定 Nginx 监听的端口和协议。
  • server_name 指定该虚拟主机的域名。
  • root 指定静态文件的根目录。
  • location / 块定义了请求的处理规则,try_files 指令尝试匹配请求的 URI,并在文件系统中查找对应的文件或目录。

2. 反向代理配置

假设你有一个后端应用在本地运行在 http://localhost:8080,可以使用 Nginx 作为反向代理来转发请求:

server {
   
    listen 80;
    server_name example.com;

    location / {
   
        proxy_pass http://localhost:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}
  • proxy_pass 指令将请求转发到指定的后端服务器地址。
  • proxy_set_header 指令用于设置请求头,确保后端服务器能够获取到正确的客户端信息。

3. 负载均衡配置

如果有多个后端服务器提供相同服务,可以配置 Nginx 实现负载均衡:

upstream backend_servers {
   
    server backend1.example.com;
    server backend2.example.com;
    server backend3.example.com;
}

server {
   
    listen 80;
    server_name example.com;

    location / {
   
        proxy_pass http://backend_servers;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}
  • upstream 块定义了后端服务器的集群。
  • proxy_pass 指令将请求转发给定义的后端服务器集群。

4. HTTPS 配置(SSL 终结)

Nginx 可以作为 SSL 终结点来处理 HTTPS 请求,并将明文请求转发给后端服务器:

server {
   
    listen 443 ssl;
    server_name example.com;

    ssl_certificate /path/to/fullchain.pem;
    ssl_certificate_key /path/to/privkey.pem;

    location / {
   
        proxy_pass http://localhost:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}
  • listen 443 ssl 指定监听的端口和协议为 HTTPS,并指定 SSL 证书和私钥。
  • ssl_certificatessl_certificate_key 指令指定 SSL 证书和私钥的路径。

5. WebSocket 配置

如果后端服务器支持 WebSocket 协议,可以配置 Nginx 支持 WebSocket 的转发:

server {
   
    listen 80;
    server_name example.com;

    location /websocket {
   
        proxy_pass http://backend_server;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
    }
}
  • proxy_http_version 1.1 指定 HTTP 协议版本为 1.1,支持 WebSocket。
  • proxy_set_header Upgrade $http_upgradeproxy_set_header Connection "Upgrade" 设置协议升级头,以支持 WebSocket 协议。

总结

以上是几种常见的 Nginx 配置示例,涵盖了静态文件服务、反向代理、负载均衡、HTTPS 配置和 WebSocket 配置等常见用例。根据实际需求和具体场景,可以进一步调整和扩展这些配置。使用 Nginx 可以极大地提升 Web 应用的性能、安全性和可靠性。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
目录
相关文章
|
3月前
|
缓存 负载均衡 JavaScript
Nginx:高性能Web服务器与反向代理利器
Nginx:高性能Web服务器与反向代理利器
279 110
|
3月前
|
负载均衡 Cloud Native 前端开发
Nginx:高性能的Web服务器与反向代理利器
Nginx:高性能的Web服务器与反向代理利器
207 100
|
3月前
|
缓存 负载均衡 前端开发
Nginx:高性能Web服务器的核心力量
Nginx:高性能Web服务器的核心力量
225 100
|
3月前
|
缓存 负载均衡 前端开发
Nginx:高性能的Web服务器与反向代理利器
Nginx:高性能的Web服务器与反向代理利器
252 99
|
3月前
|
负载均衡 前端开发 安全
Nginx:高性能的Web服务器与反向代理利器
Nginx:高性能的Web服务器与反向代理利器
231 98
|
3月前
|
缓存 负载均衡 前端开发
Nginx:高性能Web服务器的核心引擎
Nginx:高性能Web服务器的核心引擎
230 99
|
3月前
|
缓存 负载均衡 前端开发
Nginx:高性能Web服务器的核心引擎
Nginx:高性能Web服务器的核心引擎
163 47
|
2月前
|
Ubuntu 安全 应用服务中间件
详细指南:配置Nginx服务器在Ubuntu平台上
以上步骤涵盖了基本流程:从软件包管理器获取 Ngnix, 设置系统服务, 调整UFW规则, 创建并激活服务器块(也称作虚拟主机), 并进行了初步优化与加固措施。这些操作都是建立在命令行界面上,并假设用户具有必要权限(通常是root用户)来执行这些命令。每个操作都有其特定原因:例如,设置开机启动确保了即使重启后也能自动运行 Ngnix;而编辑server block则定义了如何处理进入特定域名请求等等。
257 18
|
2月前
|
Ubuntu 安全 应用服务中间件
详细指南:配置Nginx服务器在Ubuntu平台上
以上步骤涵盖了基本流程:从软件包管理器获取 Ngnix, 设置系统服务, 调整UFW规则, 创建并激活服务器块(也称作虚拟主机), 并进行了初步优化与加固措施。这些操作都是建立在命令行界面上,并假设用户具有必要权限(通常是root用户)来执行这些命令。每个操作都有其特定原因:例如,设置开机启动确保了即使重启后也能自动运行 Ngnix;而编辑server block则定义了如何处理进入特定域名请求等等。
319 17
|
3月前
|
缓存 监控 前端开发
详述uniapp项目部署于Nginx服务器的配置优化方法。
综上所述,uniapp项目部署于Nginx的优化方法多种多样,应根据实际情况灵活地采取合适的策略。配置后持续监控和调试,适时调整配置以保持最佳性能,并确保随着应用需求和访问模式的变化,服务器配置得到适当的更新和优化。
211 0
下一篇
oss云网关配置