Nginx-基础 (3)

Nginx-基础

修改本地hosts文件,修改完成后,我们便可以通过:8080访问到第一步的初始化页面。那么如何只需要输入 便可以跳转到第一步的初始界面呢?便用到 nginx的反向代理。

# nginx test 127.0.0.1

在default.conf配置文件中增加如下配置

监听80端口,访问域名为,访问该域名时会被nginx代理到192.168.0.107:8080路径上。

server { listen 80; listen [::]:80; server_name ; location / { # 将真实的客户端信息转发到服务 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass :8080; } }

访问结果

Nginx-基础

5.2 实例2

我们再起一个后台服务teacher,其端口为8081且上下文地址为teacher,启动后直接在地址栏上访问localhost:8081/teacher,返回I am teacher

student服务添加上下文地址student,启动后的访问地址为localhost:8080/student

Nginx-基础

在 default.conf配置文件中增加如下配置

server { listen 80; listen [::]:80; server_name ; location ^~ /student/ { # 将真实的客户端信息转发到服务 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass :8080; } location ^~ /teacher/ { # 将真实的客户端信息转发到服务 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass :8081; } }

访问结果

Nginx-基础

6. 负载均衡

实现效果:用户通过nginx访问student集群服务,通过负载策略将请求分发到不同的服务上。

6.1 实例

通过idea设计器实现copy两个启动类的配置,并且将端口设置为动态传入,通过启动配置的环境变量传入8081 和 8083 两个端口,实现student服务的伪集群进行测试。

Nginx-基础

修改default.conf配置文件

通过添加upstream模块实现负载功能。

upstream stu-server { server 192.168.0.107:8081; server 192.168.0.107:8083; } server { listen 80; listen [::]:80; server_name ; location ^~ /student/ { # 将真实的客户端信息转发到服务 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass ; } }

访问结果

Nginx-基础

6.2 负载策略

官方文档地址

1. Round Robin (default)

轮询 - 请求在服务器之间平均分配,同时考虑了服务器权重。默认情况下使用此方法(没有启用它的指令)

upstream backend { server backend1.example.com; server backend2.example.com; } 2. Least Connections

最少连接 - 将请求发送到具有最少活动连接数的服务器,同时还要考虑服务器权重:

upstream backend { least_conn; server backend1.example.com; server backend2.example.com; } 3. IP Hash

IP哈希 -从客户端IP地址确定向其发送请求的服务器。在这种情况下,可以使用IPv4地址的前三个八位字节或整个IPv6地址来计算哈希值。该方法保证了来自相同地址的请求将到达同一服务器,除非该请求不可用。

upstream backend { ip_hash; server backend1.example.com; server backend2.example.com; }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwgggf.html