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

简介: 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 应用的性能、安全性和可靠性。

目录
相关文章
|
14天前
|
JavaScript Java 应用服务中间件
|
1月前
|
Ubuntu 应用服务中间件 Linux
在Linux中,如何配置Web服务器(如Apache或Nginx)?
在Linux中,如何配置Web服务器(如Apache或Nginx)?
|
1月前
|
缓存 负载均衡 应用服务中间件
Nginx 代理管理器强势登场!轻松设置反向代理,为你的网络安全与高效护航,快来探索!
【8月更文挑战第23天】Nginx 代理管理器(NPM)是一款强大的工具,用于简化反向代理的设置流程。反向代理能隐藏后端服务器的真实IP,提升安全性,实现负载均衡与缓存等功能。用户需先安装Nginx 代理管理器,然后通过其Web界面添加代理主机,指定代理名称、协议类型、服务器地址及端口等信息。对于HTTPS协议,还需上传SSL证书/密钥。完成设置后,可通过浏览器测试反向代理是否正常工作。Nginx 代理管理器还支持高级特性,如负载均衡、缓存及访问控制等。
60 1
|
1月前
|
负载均衡 应用服务中间件 Linux
"揭晓nginx的神秘力量:如何实现反向代理与负载均衡,拯救服务器于水火?"
【8月更文挑战第20天】在Linux环境下,nginx作为高性能HTTP服务器与反向代理工具,在网站优化及服务器负载均衡中扮演重要角色。本文通过电商平台案例,解析nginx如何解决服务器压力大、访问慢的问题。首先介绍反向代理原理,即客户端请求经由代理服务器转发至内部服务器,隐藏真实服务器地址;并给出配置示例。接着讲解负载均衡原理,通过将请求分发到多个服务器来分散负载,同样附有配置实例。实践表明,采用nginx后,不仅服务器压力得到缓解,还提升了访问速度与系统稳定性。
55 3
|
1月前
|
缓存 负载均衡 应用服务中间件
如何配置 NGINX 反向代理
【8月更文挑战第21天】
155 0
如何配置 NGINX 反向代理
|
28天前
|
Rust 安全 开发者
惊爆!Xamarin 携手机器学习,开启智能应用新纪元,个性化体验与跨平台优势完美融合大揭秘!
【8月更文挑战第31天】随着互联网的发展,Web应用对性能和安全性要求不断提高。Rust凭借卓越的性能、内存安全及丰富生态,成为构建高性能Web服务器的理想选择。本文通过一个简单示例,展示如何使用Rust和Actix-web框架搭建基本Web服务器,从创建项目到运行服务器全程指导,帮助读者领略Rust在Web后端开发中的强大能力。通过实践,读者可以体验到Rust在性能和安全性方面的优势,以及其在Web开发领域的巨大潜力。
30 0
|
30天前
|
监控 Java API
Spring Boot中的异步革命:构建高性能的现代Web应用
【8月更文挑战第29天】Spring Boot 是一个简化 Spring 应用开发与部署的框架。异步任务处理通过后台线程执行耗时操作,提升用户体验和系统并发能力。要在 Spring Boot 中启用异步任务,需在配置类上添加 `@EnableAsync` 注解,并定义一个自定义的 `ThreadPoolTaskExecutor` 或使用默认线程池。通过 `@Async` 注解的方法将在异步线程中执行。异步任务适用于发送电子邮件、数据处理、外部 API 调用和定时任务等场景。最佳实践中应注意正确配置线程池、处理返回值和异常、以及监控任务状态,确保系统的稳定性和健壮性。
31 0
|
1月前
|
应用服务中间件 Linux nginx
【Azure 应用服务】App Service For Container 配置Nginx,设置/home/site/wwwroot/目录为启动目录,并配置反向代理
【Azure 应用服务】App Service For Container 配置Nginx,设置/home/site/wwwroot/目录为启动目录,并配置反向代理
|
1月前
|
应用服务中间件 Linux 网络安全
在Linux中,如何配置Apache或Nginx Web服务器?
在Linux中,如何配置Apache或Nginx Web服务器?
|
1月前
|
缓存 监控 Linux
在Linux中,如何设计一个高性能的Web服务器?
在Linux中,如何设计一个高性能的Web服务器?