【整理】自动的 Nginx 反向代理配置

简介:

本文内容参考自《   自动的 Nginx 反向代理配置   》。  

个人觉得:名字翻译成《自动化 Nginx 反向代理配置》更为贴切。  

【一句话总结】  
介绍了如何构建一个能够自动化配置 nginx 反向代理的方式。即将后端服务的部署与前端 nginx 的配置更改进行解耦。  

【知识点】  
  • 对于 API 的使用者来说所有操作都是在同一个 URL 空间里进行的,而实际上是根据 URL 中不同的顶级“段”来进行路由的。
  • 自动化配置的流程:当增加处理新“段”的 server 后,将投递一条 rabbitmq 消息(包含 Claim、ipAddress 和 PortNumber 信息),然后通过一个定制的组件 ProxyAutomation 消费 rabbitmq 消息,之后通过 SSH 和 SCP 重新 nginx 的配置,并促使配置的重新加载。
  • SSH.NET 上有相关库。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
...
  http {
      include       /etc/nginx/mime .types;
      default_type  application /octet-stream
 
      log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                        '$status $body_bytes_sent "$http_referer" '
                        '"$http_user_agent" "$http_x_forwarded_for"'
 
      access_log  /var/log/nginx/access .log  main;
      sendfile        on;
      keepalive_timeout  65;
   
      include /etc/nginx/conf .d/*.conf;
  }
下面这段配置是为了处理 host 为 api.example.com 端口为 80 的请求的。  
?
1
2
3
4
5
6
7
8
9
10
11
12
13
include /etc/nginx/conf .d /api .example.com.conf.d /upstream .*.conf; 
 
server {
      listen          80;
      server_name     api.example.com;
 
      include         /etc/nginx/conf .d /api .example.com.conf.d /location .*.conf;
 
      location / {
          root    /usr/share/nginx/api .example.com;
          index   index.html index.htm;
      }
  }
定制的 ProxyAutomation 组件就是通过将新 location.*.conf 文件放入 /etc/nginx/conf.d/api.example.com.conf.d/ 目录来实现添加新的 API “段” 的功能的。  

例如需要增加 stock “段”,则要创建如下配置文件  
?
1
2
3
location /stock/ {
      proxy_pass http: //stock ;
}
      这个配置就是让 nginx 将所有发向 api.example.com/stock/ 的请求代理到名字为 stock 的 upstream server 。这就用到了上面第一处 include 指令的配置内容(upstream.*.conf)。所以,我们定制的 ProxyAutomation 组件同样需要将新建的 upstream.stock.conf 文件放入 /etc/nginx/conf.d/api.example.com.conf.d/ 目录。upstream.stock.conf 文件内容可能如下  
?
1
2
3
4
upstream stock {
     server 10.0.0.23:8001;
     server 10.0.0.23:8002;
}
这段配置用于将发向 api.example.com/stock/ 的请求以 round-robin 的方式发到两个地址上。  
目录
相关文章
|
22天前
|
运维 前端开发 应用服务中间件
LNMP详解(八)——Nginx动静分离实战配置
LNMP详解(八)——Nginx动静分离实战配置
24 0
|
1月前
|
应用服务中间件 nginx
Nginx中如何配置中文域名?
Nginx中如何配置中文域名?
40 0
|
21天前
|
前端开发 应用服务中间件 nginx
Nginx配置详解Docker部署Nginx使用Nginx部署vue前端项目
Nginx配置详解Docker部署Nginx使用Nginx部署vue前端项目
85 0
|
1天前
|
安全 应用服务中间件 网络安全
SSL原理、生成SSL密钥对、Nginx配置SSL
现在,你的Nginx虚拟主机应该已经配置了SSL,可以通过HTTPS安全访问。确保在生产环境中使用有效的SSL证书来保护通信的安全性。
7 0
|
4天前
|
域名解析 缓存 负载均衡
Nginx正向代理域名的配置
Nginx正向代理域名的配置
|
4天前
|
前端开发 JavaScript 应用服务中间件
修改Jeecg-boot context-path(附加图片+Nginx配置)
修改Jeecg-boot context-path(附加图片+Nginx配置)
12 0
|
15天前
|
应用服务中间件 nginx
nginx进行反向代理的配置
在Nginx中设置反向代理的步骤:编辑`/etc/nginx/nginx.conf`,在http段加入配置,创建一个监听80端口、服务器名为example.com的虚拟主机。通过`location /`将请求代理到本地3000端口,并设置代理头。保存配置后,使用`sudo nginx -s reload`重载服务。完成配置,通过example.com访问代理服务器。
22 0
|
16天前
|
应用服务中间件 网络安全 nginx
nginx配置https访问
nginx配置https访问
26 0
|
25天前
|
应用服务中间件 nginx
nginx配置访问qicaitun.com强制跳转www.qicaitun.com
nginx配置访问qicaitun.com强制跳转www.qicaitun.com
9 0
|
25天前
|
应用服务中间件 Linux PHP
Linux下安装php环境并且配置Nginx支持php-fpm模块
Linux下安装php环境并且配置Nginx支持php-fpm模块
22 0