Nginx拆分配置文件的办法

nginx,拆分,配置文件,办法 · 浏览次数 : 218

小编点评

**Nginx配置文件拆分详解** **1. 创建自定义目录** - 创建一个名为 `upstream` 的目录。 - 创建一个名为 `appmain` 的目录用于存放 appmain 配置文件。 - 创建一个名为 `appslave` 的目录用于存放 appslave 配置文件。 **2. 创建包含服务器地址的配置文件** - 在 `upstream/appmain` 中添加服务器地址的配置文件。 - 在 `upstream/appslave` 中添加服务器地址的配置文件。 **3. 创建包含代理设置的配置文件** - 在 `upstream/appmain` 中添加代理设置的配置文件。 - 在 `upstream/appslave` 中添加代理设置的配置文件。 **4. 创建包含动态配置的配置文件** - 在 `location/mainapp` 中添加动态配置的配置文件。 - 在其他 `location` 中添加动态配置的配置文件。 **5. 使用 `include` 语句合并配置文件** - 在 `nginx.conf` 中使用 `include` 语句将多个配置文件合并到一起。 - 在 `location/mainapp` 中使用 `include` 语句将所有 appmain 配置文件合并到一起。 **6. 使用 `server` 标签包含多个location** - 使用 `server` 标签将多个location分组到一起。 - 每个location配置都使用 `proxy_pass` 指令将请求转发到相应的服务器。 **7. 使用`upstream` 配置虚拟服务器** - 使用 `upstream` 配置虚拟服务器将多个服务器连接到一个虚拟服务器。 - 每个location可以使用 `proxy_pass` 指令将请求转发到相应的虚拟服务器。 **8. 使用`include` 语句加载动态配置文件** - 在 `nginx.conf` 中使用 `include` 语句加载动态配置文件。 - 可以在服务器启动时执行此操作。

正文

Nginx拆分配置文件的办法


摘要

最近公司使用Nginx进行微服务的路由处理
但是发现随着业务发展, 配置文件越来越复杂.
修改起来也很容易出现错误.
基于此. 想通过拆分配置文件的方式来提高修改效率和准确性. 

其实方法非常简单, 记录一下知识备忘. 

拆分的方法

其实不需要必须使用 conf.d的目录
可以使用自定义目录进行处理
比如这次我准备使用
upstream
location
两个目录
一个用来存放 后端服务器的地址列表
一个用来存放 proxy_pass代理服务的设置

拆分说明

主要的配置文件为  nginx.conf
然后通过 nginx -t -c nginx.conf 进行检查.
然后可以通过include的方式挂载到里面的配置文件. 

方式还是比较优雅的. 

main 的配置文件

worker_processes  2;
events {
    worker_connections  10240;
}
http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for" $request_time $upstream_response_time';
    access_log /data/nginx/gscloudsu.log main ; 
    client_header_timeout 600;
    client_body_timeout 600;
    client_max_body_size 300m;
    proxy_send_timeout 600;
    proxy_read_timeout 600;
    proxy_buffer_size 1024k;
    proxy_buffers 16 1024k;
    proxy_busy_buffers_size 2048k;
    proxy_temp_file_write_size 2048k;
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    gzip on;
    gzip_min_length 1k;
    gzip_buffers 4 16k;
    gzip_comp_level 8;
    gzip_types text/plain application/javascript text/css application/json text/javascript image/svg+xml image/png;
    gzip_vary off;

    include upstream/*.conf ;

    server {
        listen       5200;
        server_name  localhost;
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";

     include location/*.conf ;

    } 
}

location配置节

mainapp: 

       location ^~ / {
            proxy_pass  http://appmain/;
        }
        #业务中台
        location ^~ /api/bp {
            proxy_pass  http://appmain/api/bp;
        }
        # web apps
        location ^~ /apps/bp {
            proxy_pass  http://appmain/apps/bp;
        }
slaveapp: 

        # crm apps web
        location ^~ /apps/crm {
            proxy_pass  http://appslave/apps/crm;
        }
        # crm service to Java
        location ^~ /api/crm {
            proxy_pass  http://appslave/api/crm;
        }

upstream配置节

main的:
    upstream appmain {
      ip_hash;
      server 127.0.0.1:5201;  
      server 127.0.0.1:5202;  
    }
appslave的:
    upstream appslave {
      ip_hash;
      server 127.0.0.1:5298;
      server 127.0.0.1:5299;  
    }

与Nginx拆分配置文件的办法相似的内容:

Nginx拆分配置文件的办法

Nginx拆分配置文件的办法 摘要 最近公司使用Nginx进行微服务的路由处理 但是发现随着业务发展, 配置文件越来越复杂. 修改起来也很容易出现错误. 基于此. 想通过拆分配置文件的方式来提高修改效率和准确性. 其实方法非常简单, 记录一下知识备忘. 拆分的方法 其实不需要必须使用 conf.d的

[转帖]将nginx.conf文件的内容拆分成多个

nginx的如果有多个server模块都配置在同一个nginx.conf文件会显得比较臃肿,后续维护起来也会比较困难,所以可以将内容写入到多个配置文件中然后在nginx.conf文件中通过include命令引入。 1.nginx.conf配置文件内容 user nginx; worker_proce

Nginx双层域名时 iframe嵌入/跳转页面的处理过程

# Nginx双层域名时 iframe嵌入/跳转页面的处理过程 ## 背景 ``` 两年前在上一家公司内遇到一个Nginx的问题 当时的场景是 双层nginx代理时(一层域名侧, 一层拆分微服务的网关层) 程序里面会打开一个嵌套的iframe, 便于进行缩放. 但是此时因为只能就近获取 第二层反向代

使用openresty替换线上nginx网关之openresty安装细节

# 背景 线上跑了多年的一个网关业务,随着部门的拆分,逐渐有了一个痛点。该网关业务主要处理app端请求,app端发起的请求,采用http协议,post方法,content-type采用`application/x-www-form-urlencoded`,表单中有一个固定的字段,叫功能号,即func

nginx中一个请求匹配到多个location时的优先级问题,马失前蹄了

背景 为什么讲这么小的一个问题呢?因为今天在进行系统上线的时候遇到了这个问题。 这次的上线动作还是比较大的,由于组织架构拆分,某个接入层服务需要在两个部门各自独立部署,以避免频繁的跨部门沟通,提升该接入层服务的变更效率。 该接入层服务之前是使用cookie + 内存session机制的,这次要独立部

Nginx 高性能架构解析

本文详细探讨了Nginx的反向代理、负载均衡和性能优化技术,包括配置优化、系统优化、缓存机制和高并发处理策略,旨在帮助专业从业者深入理解并有效应用Nginx。 关注TechLead,复旦博士,分享云服务领域全维度开发技术。拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,复旦机器人智能实验

Nginx性能调优5招35式不可不知的策略实战

Nginx是一个高性能的HTTP和反向代理服务器,它在全球范围内被广泛使用,因其高性能、稳定性、丰富的功能以及低资源消耗而受到青睐。今天V哥从5个方面来介绍 Nginx 性能调优的具体策略,希望对兄弟们有帮助,废话不多说,马上开整。 1. 系统层面: 调整内核参数:例如,增加系统文件描述符的限制、T

Nginx负载配置

目录Nginx 负载均衡笔记1. 概述1.1 Nginx 简介1.2 负载均衡概述2. 四层负载均衡(传输层)2.1 工作原理2.2 特点2.3 优缺点优点缺点2.4 示例场景3. 七层负载均衡(应用层)3.1 工作原理3.2 特点3.3 优缺点优点缺点3.4 示例场景4. Nginx 调度算法4.

中间件-Nginx

一、nginx反向代理 输入 http://xxx.com/plat/login 跳转: http://localhost:8383/plat/login 将某个指定的域名代理到指定的服务 http://xxx.com 转 http://localhost:8383 1.修改hosts文件 C:\W

Nginx配置以及热升级

目录Nginx详解1. Nginx关键特性2. Nginx配置2.1 event2.2 http2.2.1 log_format2.2.2 sendfile2.2.3 tcp_nopush2.2.4 tcp_nodelay2.2.5 keepalive_timeout2.2.6 include2.2