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

目录
相关文章
|
5天前
|
JavaScript 应用服务中间件 nginx
【项目部署系列教程】5. nginx配置反向代理,解决跨域接口的访问
【项目部署系列教程】5. nginx配置反向代理,解决跨域接口的访问
24 10
|
1天前
|
应用服务中间件 Linux nginx
CentOS 7 上配置 Nginx 作为反向代理
在CentOS 7上设置Nginx反向代理的步骤:安装Nginx;启动Nginx服务编辑`/etc/nginx/nginx.conf`;添加`proxy_pass http://app_server_address;将请求转发至应用服务器;重启Nginx`sudo systemctl restart nginx`;验证配置是否成功
|
10天前
|
NoSQL 关系型数据库 MySQL
linux服务器重启php,nginx,redis,mysql命令
linux服务器重启php,nginx,redis,mysql命令
19 1
|
14天前
|
弹性计算 应用服务中间件 Linux
双剑合璧:在同一ECS服务器上共存Apache与Nginx的实战攻略
在ECS服务器上同时部署Apache和Nginx的实战:安装更新系统,Ubuntu用`sudo apt install apache2 nginx`,CentOS用`sudo yum install httpd nginx`。配置Nginx作为反向代理,处理静态内容及转发动态请求到Apache(监听8080端口)。调整Apache的`ports.conf`监听8080。重启服务测试,实现两者高效协同,提升Web服务性能。记得根据流量和需求优化配置。【6月更文挑战第21天】
143 1
|
1天前
|
前端开发 应用服务中间件 Linux
Nginx15-16服务器启停命令
Nginx15-16服务器启停命令
|
3天前
|
监控 JavaScript 前端开发
JavaScript与Nest.js:打造高性能的服务器端应用
Nest.js是Node.js的渐进式框架,融合OOP、FP和FRP,提供模块化、装饰器和依赖注入,助建高性能服务器应用。选择Nest.js的原因包括模块化设计、简洁的装饰器API和高性能基础(如Express或Fastify)。开始使用需安装Node.js和`@nestjs/cli`,创建项目、编写控制器。深入学习涉及模块化、服务的依赖注入及中间件。安全性优化涵盖HTTPS、CORS策略、限流和性能监控。
|
应用服务中间件 nginx
Nginx服务器的反向代理proxy_pass配置方法讲解
 Nginx服务器的反向代理proxy_pass配置方法讲解 这篇文章主要介绍了Nginx服务器的反向代理proxy_pass配置方法讲解,包括经常被提到的url的/问题的相关说明,需要的朋友可以参考下 就普...
4845 0
|
应用服务中间件 nginx
nginx服务器的反向代理proxy_pass配置方法
nginx服务器的反向代理proxy_pass配置方法
325 0
|
应用服务中间件 nginx
【转】Nginx服务器的反向代理proxy_pass配置方法讲解
【转】Nginx服务器的反向代理proxy_pass配置方法讲解 转自:http://www.jb51.net/article/78746.htm 就普通的反向代理来讲Nginx的配置还是比较简单的,如: location ~ /* { proxy_pass http://127.
1252 0