Nginx拆分配置文件的办法

Posted 济南小老虎

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx拆分配置文件的办法相关的知识,希望对你有一定的参考价值。

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拆分配置文件的办法的主要内容,如果未能解决你的问题,请参考以下文章

多个linux服务器批量更改nginx配置文件并且立即生效的办法

多个linux服务器批量更改nginx配置文件并且立即生效的办法

增加nginx虚拟主机配置文件(conf.d)

nginx配置ssi实现页面拆分

NGINX按天生成日志文件的简易配置

nginx 基础配置详解