【整理】自动的 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 的方式发到两个地址上。 

时间: 2024-09-09 00:04:06

【整理】自动的 Nginx 反向代理配置的相关文章

nginx反向代理配置两个实例

例1 目前就稳定性来说,Apache是没得比的.因此,用nginx做反向代理比较合适. 这里是给http://172.30.170.8:8088/vod/做代理,反向代理服务器的名称为vod.xx.xxx.cn ,监听80端口. Apache httpd服务器监听8088端口(我这里apache与反向代理服务器在同一服务器). 全局配置参数做些调整:  代码如下 复制代码 hacklog@hywd:/etc/nginx$ cat nginx.conf user www-data; worker_

nginx反向代理配置及优化

前言: 由于服务器apache抗不住目前的并发.加上前端squid配置后,问题依然无法解决.而页面程序大部分是动态.无法使用fastcgi来处理.因此想使用nginx做为反向代理apache.整个配置安装过程很简单.在考虑高并发的情况下,在安装前就做了些优化.目前配置能抗住3000以上并发.好像不是特别大哦?呵~~ 但足以~~ 只是还有少量499问题. 第1部分:安装 1 建立用户及组 /usr/sbin/groupadd www /usr/sbin/useradd -g www www 2 安

nginx反向代理配置与优化之nginx优化

环境为:Windows2003 + nginx.(根据官方文档建议,使用1.5.10版本,即当前最新版). 一.简单的配置,让nginx先跑起来 nginx配置比较简单.conf目录下找到nginx.conf文件,修改如下配置  代码如下 复制代码 server {         listen       80; //绑定的监听端口         server_name  www.111cn.net 111cn.net; //绑定的域名           #charset koi8-r;

Nginx反向代理websocket配置实例_nginx

最近有一个需求,就是需要使用 nginx 反向代理 websocket,经过查找一番资料,目前已经测试通过,本文只做一个记录 复制代码 代码如下: 注: 看官方文档说 Nginx 在 1.3 以后的版本才支持 websocket 反向代理,所以要想使用支持 websocket 的功能,必须升级到 1.3 以后的版本,因此我这边是下载的 Tengine 的最新版本测试的 1.下载 tengine 最近的源码 复制代码 代码如下: wget http://tengine.taobao.org/dow

详解Nginx HTTP负载均衡和反向代理配置_nginx

当前大并发的网站基本都采用了Nginx来做代理服务器,并且做缓存,来扛住大并发.先前也用nginx配置过简单的代理,今天有时间把整合过程拿出来和大家分享,不过其中大部分也是网上找来的资源. nginx完整的反向代理代码如下所示  : [root@data conf]# vim nginx.conf user www www; worker_processes 10; error_log /var/log/nginx/nginx_error.log; pid logs/nginx.pid; wor

配置nginx反向代理用做内网域名转发

情景 由于公司内网有多台服务器的http服务要映射到公司外网静态IP,如果用路由的端口映射来做,就只能一台内网服务器的80端口映射到外网80端口,其他服务器的80端口只能映射到外网的非80端口.非80端口的映射在访问的时候要域名加上端口,比较麻烦.并且公司入口路由最多只能做20个端口映射.肯定以后不够用. 然后k兄就提议可以在内网搭建个nginx反向代理服务器,将nginx反向代理服务器的80映射到外网IP的80,这样指向到公司外网IP的域名的HTTP请求就会发送到nginx反向代理服务器,利用

基于CentOS 7配置Nginx反向代理

Nginx作为反向代理服务器被广泛使用在各大互联网企业.它简单易用,可以根据业务的需求将其不同的业务类型代理至不同的服务器,将整个站点请求压力按类型分摊到不同的服务器.该方式使的整个站点请求性能得以极大的提升.本文简要描述了Nginx几种不同情形的代理演示,供大家参考. 一.反向代理及演示环境描述 1.反向代理 在计算机网络中,反向代理是一种代理服务器,代表客户端从一个或多个服务器检索资源.然后将这些资源返回给客户机,就像它们源自Web服务器本身一样.与正向代理相反,正向代理是与其关联的客户端联

tomcat集群-nginx 反向代理三个本地tomcat 负载均衡配置 无法加载js css 图片等 也不报错

问题描述 nginx 反向代理三个本地tomcat 负载均衡配置 无法加载js css 图片等 也不报错 打开速度非常慢,到最后js css无法加载是什么问题 我的项目是ssh+jquery+easyui的 单独访问tomcat完全正常 访问nginx就这样了 .求大神指点啊 访问webapp根目录是可以的 我的页面都是在web-inf目录下的貌似不行 nginx配置如下: #user nobody; worker_processes 1; #error_log logs/error.log;

Nginx服务器的SSL证书配置以及对SSL的反向代理配置_nginx

Nginx的SSL证书配置 1.使用openssl实现证书中心由于是使用openssl架设私有证书中心,因此要保证以下字段在证书中心的证书.服务端证书.客户端证书中都相同 Country Name State or Province Name Locality Name Organization Name Organizational Unit Name Country Name State or Province Name Locality Name Organization Name Org