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;
}