nginx反向代理,负载均衡,HTTP配置简述(说人话)

文章目录

反向代理

正向代理

所谓的正向代理,通俗来说就是,正向代理是一个位于客户端和目标服务器之间的服务器,它代表客户端向目标服务器发起请求。但是我们客户机学院手动配置代理服务器、

反向代理

普通反向代理

反向代理就是,客户机不需要做任何的配置,我们只需将服务请求发给代理服务器,代理服务器它自己 根据策略选择服务器给予相应,对于客户端来说可以说是相当奈斯。

使用 Nginx 实现反向代理的方法是在 Nginx 配置文件中设置 location 块,并使用 proxy_pass 指令指定后端服务器的地址。例如:

bash 复制代码
location / {
    proxy_pass http://backend;
}
分析解释

backed不一定非要是IP地址,也可以是一个解析组,看下面负载均衡就知道了。

proxy_pass http://backend;其实这里也可以不加http://这个部分,但是如果不加是Nginx会使用与客户端请求相同的协议。这个好处就在于可以灵活的匹配,但是缺点就是安全性可能有些问题。

四层反向代理

负载均衡

Nginx 的负载均衡功能是指在多个后端服务器之间分配客户端请求,以提高系统的可用性和性能。

在 Nginx 配置文件中,可以使用 upstream 指令定义一个后端服务器组,并在 location 块中使用 proxy_pass 指令将请求转发到该服务器组

例如:

bash 复制代码
[root@centos8 ~]# cat /apps/nginx/conf/conf.d/pc.conf
 upstream webserver {
#ip_hash;
 #hash $request_uri consistent;
 #hash $cookie_lee
 #least_conn;
 server 172.25.254.20:8080 weight=1 fail_timeout=15s max_fails=3;
 server 172.25.254.30:80 weight=1 fail_timeout=15s max_fails=3;
 server 172.25.254.10:80 backup;
 }
 server {
 listen 80;
 server_name www.timinglee.org;
 location ~ / {
 proxy_pass http://webserver;
 }

这段nginx配置定义了一个名为webserver的上游服务器组,其中包含三个服务器:

172.25.254.20:8080,权重为1,失败超时时间为15秒,最大失败次数为3次。

172.25.254.30:80,权重为1,失败超时时间为15秒,最大失败次数为3次。

172.25.254.10:80,作为备份服务器。

接下来定义了一个名为www.timinglee.org的服务器,监听80端口。当访问该域名时,请求会被代理到webserver上游服务器组中的服务器。

HTTPS配置

基本配置

在 Nginx 中配置 HTTPS,需要先生成 SSL 证书和私钥,然后将它们放在 Nginx 配置文件指定的目录中。接下来,在 Nginx 配置文件中添加一个新的 server 块,监听 443 端口,并使用 ssl_certificatessl_certificate_key 指令指定证书和私钥的路径。例如:

bash 复制代码
server {
    listen 443 ssl;
    server_name example.com;

    ssl_certificate /path/to/ssl_certificate.crt;
    ssl_certificate_key /path/to/ssl_private_key.key;

    location / {
        # 其他配置...
    }
}
Nginx 账户认证功能

此功能由 ngx_http_auth_basic_module 模块提供此功能

示例:

bash 复制代码
[root@Nginx ~]# htpasswd  -cmb /usr/local/nginx/conf/.htpasswd admin lee   #-b 表
示非交互建立用户认证
Adding password for user admin
 [root@Nginx ~]# htpasswd  -mb /usr/local/nginx/conf/.htpasswd lee lee
 Adding password for user lee
 [root@Nginx ~]# cat /usr/local/nginx/conf/.htpasswd
 admin:$apr1$haGCKgCT$myogggALmqNecTyNupsWQ/
 lee:$apr1$H97AyQPF$kGU.Tc4zn1E4Zkp/M4R6G.
 }
 [root@Nginx ~]# mkdir  /webdata/nginx/timinglee.org/lee/login
 [root@Nginx ~]# echo login > /webdata/nginx/timinglee.org/lee/login/index.html
 [root@Nginx ~]# vim /usr/local/nginx/conf.d/vhosts.conf
 server {
 listen 80;
 server_name lee.timinglee.org;
 location /login {
 root /webdata/nginx/timinglee.org/lee;
 index index.html;
 auth_basic  "login password";
 auth_basic_user_file "/usr/local/nginx/conf/.htpasswd";
 }
 #重启Nginx并访问测试
[root@node100 ~]# curl  lee.timinglee.org/login/ -u lee:lee
 login
 [root@node100 ~]# curl  lee.timinglee.org/login/ -u admin:lee
 login
相关推荐
eastyuxiao6 小时前
思维导图拆解项目范围 3 个真实落地案例
大数据·运维·人工智能·流程图
GanGanGanGan_7 小时前
RustDesk 安装指南 — Rocky Linux 9 + XFCE X11
linux·运维·centos
南境十里·墨染春水11 小时前
linux学习笔记 网络编程——Socket入门与TCP客户端/服务器实现
linux·服务器·网络
Sirens.11 小时前
twikoo:从MongoDB Atlas到本地部署
运维·服务器
Meya112711 小时前
别再人工硬扛机房管理!智能 U 位系统,让机房管理一键数字化
大数据·运维
qq_三哥啊12 小时前
【mitmproxy】通过 mitmproxy 的HTTP代理模式获取 OpenCode 发起的 AI API 请求的详细信息
网络·http·代理模式
DFT计算杂谈12 小时前
自动化脚本一键绘制三元化合物相图
java·运维·服务器·开发语言·前端·python·自动化
Yupureki12 小时前
《Linux网络编程》6.UDP原理
linux·运维·服务器·网络·udp
庞轩px12 小时前
大模型推理网关——从负载均衡到故障注入的完整设计
网关·大模型·负载均衡·webflux·token限流·api密钥
楼田莉子12 小时前
Linux网络:NAT_代理
linux·运维·服务器·开发语言·c++·后端