美文网首页
ubuntu+docker+nginx反向代理实现代理多个服务

ubuntu+docker+nginx反向代理实现代理多个服务

作者: 鬼厉 | 来源:发表于2020-08-17 15:35 被阅读0次

最近项目中由于不使用网关,服务发现,要实现部署时,通过Nginx 代理多个server(包括同一server不同的实例),
比如我现在有userserver和oderserver两个服务,现在实现,通过同一域名访问两个server的功能,摸索了半天,记录下实现过程。
PS:两个server的路由分组都是以server名作为开始
分别实现下面两个接口:
/userserver/user/login
/orderserver/order/create

172.16.6.71为我本地ip
userserver端口为:18001
oderserver端口为:18002
域名设置为:www.tutor.com
nginx.conf配置如下:
user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


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;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

     #这里是新增的配置
       
    upstream user_server{
        server 172.16.6.71:18001;
   }
   
    upstream order_server{
        server 172.16.6.71:18002;
   }
   server {
        listen   80;   #监听端口
        server_name www.tutor.com;
        location /userserver/{
                proxy_pass http://user_server;
        }
        
        location /orderserver/{
                proxy_pass http://order_server;
        }
   }

   
   include /etc/nginx/conf.d/*.conf;
}
说明:

下面的内容是路由到各server的配置

upstream user_server{
        server 172.16.6.71:18001;
   }
   
    upstream order_server{
        server 172.16.6.71:18002;
   }

如果你的同一个server在同一台机器要部署多个,可以修改为如下,也可以按需求进行加权或iphash配置,我这里使用ip轮询的方式;在不同机器部署的将ip修改一下就可以了

upstream user_server{
        server 172.16.6.71:18001;
        server 172.16.6.71:18003;
   }
   
    upstream order_server{
        server 172.16.6.71:18002;
        server 172.16.6.71:18004;
   }

server_name www.tutor.com;这个是统一的域名配置

下面的内容是使用根据server的url路由的配置,这里要求userserver的接口要以/userserver开头,否则无法匹配到,orderserver也同样如此。

location /userserver/{
                proxy_pass http://user_server;
        }
        
        location /orderserver/{
                proxy_pass http://order_server;
        }

现在Nginx的配置就设置完了,设置电脑的hosts,增加172.16.6.71 www.tutor.com
打开postman通过如下接口请求即可,亲测通过。

http://www.tutor.com/userserver/user/login
http://www.tutor.com/orderserver/order/create

相关文章

  • ubuntu+docker+nginx反向代理实现代理多个服务

    最近项目中由于不使用网关,服务发现,要实现部署时,通过Nginx 代理多个server(包括同一server不同的...

  • 四、反向代理

    nginx Proxy 代理 1、代理原理 - 反向代理服务的实现:需要有一个负载均衡设备(即反向代理服务器)来分...

  • Nginx核心概念

    1.HTTP代理和反向代理 代理服务和反向代理服务是Nginx服务器作为Web服务器的主要功能之一,尤其是反向代理...

  • 利用Nginx实现反向代理和负载均衡

    什么是反向代理? 正向代理(基于客户端的代理) 反向代理(基于服务器端的代理) 反向代理服务器决定哪台服务器提供服...

  • Nginx实现负载均衡

    1.什么是反向代理 正向代理,反向代理正向代理:客户端知道服务端,通过代理端连接服务端。代理端代理的是服务端。 反...

  • SpringCloud(第 018 篇)Zuul 服务 API

    SpringCloud(第 018 篇)Zuul 服务 API 网关微服务之代理与反向代理 一、大致介绍 二、实现...

  • Servlet实现反向代理实践总结

    一、反向代理 反向代理顾名思义,是和正向代理相反,所以我们可以借助于正向代理来理解反向代理。 正向代理:多个客户端...

  • Nginx-4 Proxy 代理(正/反 向代理)

    1、代理原理 反向代理服务的实现:需要有一个负载均衡设备(即反向代理服务器)来分发用户请求,将用户请求分发到后端正...

  • 利用反向代理实现内网的ssh连接

    内容实现了再补 参考文章:SSH如何反向代理稳定穿透内网利用ssh反向代理以及autossh实现从外网连接内网服务器

  • Nginx 正向代理与反向代理解析与实战

    Nginx 正向代理与反向代理 1. 正向代理与反向代理的区别 1.1 什么是代理服务器? 所谓代理服务器就是位于...

网友评论

      本文标题:ubuntu+docker+nginx反向代理实现代理多个服务

      本文链接:https://www.haomeiwen.com/subject/ndjqjktx.html