同一个Nginx服务器同一端口配置多个代理服务

一、建立两个服务

1.1 建立产品服务(product_server)

  1. 配置文件
server:
  port: 8080
  servlet:
    context-path: /product
  1. 创建访问接口
@SpringBootApplication
@RestController
public class ProductApplication {

    public static void main(String[] args) {
        SpringApplication.run(ProductApplication.class, args);
    }

    @GetMapping("/add")
    public String addProduct() {
        return "添加产品成功";
    }
    @GetMapping("/update")
    public String updateProduct() {
        return "编辑产品成功";
    }
}
  1. 启动,访问:http://localhost:8080/product/add
    在这里插入图片描述
  2. 访问:http://localhost:8081/order/update
    在这里插入图片描述

1.2 创建订单服务(order_server)

  1. 配置文件
server:
  port: 8081
  servlet:
    context-path: /order
  1. 创建访问接口
@SpringBootApplication
@RestController
public class OrderApplication {

    public static void main(String[] args) {
        SpringApplication.run(OrderApplication.class, args);
    }
    @GetMapping("/add")
    public String addOrder() {
        return "添加订单成功";
    }
    @GetMapping("/update")
    public String updateOrder() {
        return "编辑订单成功";
    }
}
  1. 同上进行访问,肯定没问题。

二、修改hosts文件

添加以下三个映射

127.0.0.1 www.product.com
127.0.0.1 www.order.com
127.0.0.1 nginx.test.com

三、修改nginx配置文件

  1. 更换配置文件内容

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    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"';
                      
    
    rewrite_log     on;
 
	#设置访问的web应用列表
    upstream product_server{
        server www.product.com:8080;
    }
    upstream order_server{
        server www.order.com:8081;
    }
 
 
   #HTTP服务器
   server {
        #监听80端口,80端口是知名端口号,用于HTTP协议
        listen       80;
        
        #定义使用www.xx.com访问
        server_name  nginx.test.com;
        
        
        #编码格式
        charset utf-8;
        
        #代理配置参数
        proxy_connect_timeout 180;
        proxy_send_timeout 180;
        proxy_read_timeout 180;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarder-For $remote_addr;
        
       
 
        #默认指向product的server
        location / {
            proxy_pass http://product_server;
        }
 
		#使用location对不同请求做相应处理
        location /product/{
            proxy_pass http://product_server;
        }
 
        location /order/ {
            proxy_pass http://order_server;
        }
        
    }
}
  1. 在nginx根目录下输入命令:nginx -tc conf/nginx.conf测试配置文件,成功。
    在这里插入图片描述
  2. 输入命令:start nginx启动nginx。

四、测试

**加粗样式**
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
至此,我们便实现了使用nginx服务的80端口反向代理产品服务和订单服务

猜你喜欢

转载自blog.csdn.net/qwqw3333333/article/details/88259768