首页 > 技术文章 > nginx+zuul

ncbest 原文

  最近将公司的一些服务迁移到spring cloud了,感觉zuul智能路由的功能非常好用,比以前手动在nginx中添加localtion,upstream方便多了,但是服务域名的80端口被nginx占用,所以就采用了nginx+zuul的模式。
废话不说直接上配置,在nginx.conf中添加:

注意“{}”中的信息请填写自己的


server {
        listen       80;
        server_name  {domain};
	    rewrite ^/a/b/(.*)$  /server1/a/b/$1;
        rewrite ^/c/(.*)$  /server2/c/$1;
	
    	 location /server1 {
               proxy_pass http://xx.xx.xx.xxx:8888;
               proxy_set_header host $host;
               proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
               proxy_set_header X-Real-IP $remote_addr;
               proxy_set_header referer "-";
               proxy_redirect default;
          }
    	location /server2 {
               proxy_pass http://xx.xx.xx.xxx:8888;
               proxy_set_header host $host;
               proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
               proxy_set_header X-Real-IP $remote_addr;
               proxy_set_header referer "-";
               proxy_redirect default;
          }
    }


1. server1,server2为服务名,/a/b为server1的context,/c是server2的context
2. http://xx.xx.xx.xxx:8888 是zuul的服务地址
3. rewrite ^/a/b/(.*)$  /a/b/brand/$1;  $1表示的是rewrite正则中()中的内容


因为zuul的默认是按 server name 将请求路由的,所以在nginx使用rewrite的方法将请转发到zuul。

推荐阅读