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

一、建立两个服务

1.1 建立产品服务(product_server)

配置文件

server:

port: 8080

servlet:

context-path: /product

1

2

3

4

创建访问接口

@SpringBootApplication

@RestController

public class ProductApplication {

public static void main(String[] args) {

springapplication.run - 这个网站可出售。 - 最佳的springapplication 来源和相关信息。(ProductApplication.class, args);

}

@GetMapping("/add")

public String addProduct() {

return "添加产品成功";

}

@GetMapping("/update")

public String updateProduct() {

return "编辑产品成功";

}

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

启动,访问:http://localhost:8080/product/add

访问:http://localhost:8081/order/update

1.2 创建订单服务(order_server)

配置文件

server:

port: 8081

servlet:

context-path: /order

1

2

3

4

创建访问接口

@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

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

同上进行访问,肯定没问题。

二、修改hosts文件

添加以下三个映射

127.0.0.1 www.product.com

127.0.0.1 www.order.com

127.0.0.1 nginx.test.com

1

2

3

三、修改nginx配置文件

更换配置文件内容

#usernobody;

worker_processes1;

#error_loglogs/error.log;

#error_loglogs/error.lognotice;

#error_loglogs/error.loginfo;

#pidlogs/nginx.pid;

events {

worker_connections1024;

}

http {

default_typeapplication/octet-stream;

#设定日志

log_formatmain[$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;

#定义使用http://www.xx.com访问

server_namenginx.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

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

在nginx根目录下输入命令:nginx -tc conf/nginx.conf测试配置文件,成功。

输入命令:start nginx启动nginx。

四、测试

至此,我们便实现了使用nginx服务的80端口反向代理产品服务和订单服务

————————————————

版权声明:本文为CSDN博主「_chenyl」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/qwqw3333333/java/article/details/88259768