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

目录
相关文章
|
1月前
|
Java PHP
PHP作为广受青睐的服务器端脚本语言,在Web开发中占据重要地位。理解其垃圾回收机制有助于开发高效稳定的PHP应用。
【10月更文挑战第1天】PHP作为广受青睐的服务器端脚本语言,在Web开发中占据重要地位。其垃圾回收机制包括引用计数与循环垃圾回收,对提升应用性能和稳定性至关重要。本文通过具体案例分析,详细探讨PHP垃圾回收机制的工作原理,特别是如何解决循环引用问题。在PHP 8中,垃圾回收机制得到进一步优化,提高了效率和准确性。理解这些机制有助于开发高效稳定的PHP应用。
43 3
|
3月前
|
API C# 开发框架
WPF与Web服务集成大揭秘:手把手教你调用RESTful API,客户端与服务器端优劣对比全解析!
【8月更文挑战第31天】在现代软件开发中,WPF 和 Web 服务各具特色。WPF 以其出色的界面展示能力受到欢迎,而 Web 服务则凭借跨平台和易维护性在互联网应用中占有一席之地。本文探讨了 WPF 如何通过 HttpClient 类调用 RESTful API,并展示了基于 ASP.NET Core 的 Web 服务如何实现同样的功能。通过对比分析,揭示了两者各自的优缺点:WPF 客户端直接处理数据,减轻服务器负担,但需处理网络异常;Web 服务则能利用服务器端功能如缓存和权限验证,但可能增加服务器负载。希望本文能帮助开发者根据具体需求选择合适的技术方案。
148 0
|
3月前
|
Rust 安全 开发者
惊爆!Xamarin 携手机器学习,开启智能应用新纪元,个性化体验与跨平台优势完美融合大揭秘!
【8月更文挑战第31天】随着互联网的发展,Web应用对性能和安全性要求不断提高。Rust凭借卓越的性能、内存安全及丰富生态,成为构建高性能Web服务器的理想选择。本文通过一个简单示例,展示如何使用Rust和Actix-web框架搭建基本Web服务器,从创建项目到运行服务器全程指导,帮助读者领略Rust在Web后端开发中的强大能力。通过实践,读者可以体验到Rust在性能和安全性方面的优势,以及其在Web开发领域的巨大潜力。
39 0
|
3月前
|
Java 数据库 API
JSF与JPA的史诗级联盟:如何编织数据持久化的华丽织锦,重塑Web应用的荣耀
【8月更文挑战第31天】JavaServer Faces (JSF) 和 Java Persistence API (JPA) 分别是构建Java Web应用的用户界面组件框架和持久化标准。结合使用JSF与JPA,能够打造强大的数据驱动Web应用。首先,通过定义实体类(如`User`)和配置`persistence.xml`来设置JPA环境。然后,在JSF中利用Managed Bean(如`UserBean`)管理业务逻辑,通过`EntityManager`执行数据持久化操作。
52 0
|
弹性计算 网络协议 Linux
阿里云ECS搭建web服务器
阿里云ECS搭建web服务器
阿里云ECS搭建web服务器
|
1天前
|
机器学习/深度学习 人工智能 弹性计算
什么是阿里云GPU云服务器?GPU服务器优势、使用和租赁费用整理
阿里云GPU云服务器提供强大的GPU算力,适用于深度学习、科学计算、图形可视化和视频处理等多种场景。作为亚太领先的云服务提供商,阿里云的GPU云服务器具备灵活的资源配置、高安全性和易用性,支持多种计费模式,帮助企业高效应对计算密集型任务。
|
3天前
|
存储 分布式计算 固态存储
阿里云2核16G、4核32G、8核64G配置云服务器租用收费标准与活动价格参考
2核16G、8核64G、4核32G配置的云服务器处理器与内存比为1:8,这种配比的云服务器一般适用于数据分析与挖掘,Hadoop、Spark集群和数据库,缓存等内存密集型场景,因此,多为企业级用户选择。目前2核16G配置按量收费最低收费标准为0.54元/小时,按月租用标准收费标准为260.44元/1个月。4核32G配置的阿里云服务器按量收费标准最低为1.08元/小时,按月租用标准收费标准为520.88元/1个月。8核64G配置的阿里云服务器按量收费标准最低为2.17元/小时,按月租用标准收费标准为1041.77元/1个月。本文介绍这些配置的最新租用收费标准与活动价格情况,以供参考。
|
1天前
|
机器学习/深度学习 人工智能 弹性计算
阿里云GPU服务器全解析_GPU价格收费标准_GPU优势和使用说明
阿里云GPU云服务器提供强大的GPU算力,适用于深度学习、科学计算、图形可视化和视频处理等场景。作为亚太领先的云服务商,阿里云GPU云服务器具备高灵活性、易用性、容灾备份、安全性和成本效益,支持多种实例规格,满足不同业务需求。
|
9天前
|
弹性计算
阿里云2核16G服务器多少钱一年?亲测价格查询1个月和1小时收费标准
阿里云2核16G服务器提供多种ECS实例规格,内存型r8i实例1年6折优惠价为1901元,按月收费334.19元,按小时收费0.696221元。更多规格及详细报价请访问阿里云ECS页面。
42 9
|
6天前
|
监控 Ubuntu Linux
使用VSCode通过SSH远程登录阿里云Linux服务器异常崩溃
通过 VSCode 的 Remote - SSH 插件远程连接阿里云 Ubuntu 22 服务器时,会因高 CPU 使用率导致连接断开。经排查发现,VSCode 连接根目录 ".." 时会频繁调用"rg"(ripgrep)进行文件搜索,导致 CPU 负载过高。解决方法是将连接目录改为"root"(或其他具体的路径),避免不必要的文件检索,从而恢复正常连接。