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
相关推荐
waving-black10 分钟前
利用frp和腾讯云服务器将内网暴露至外网(内网穿透)
linux·服务器·腾讯云·frp·内网穿透
stormsha22 分钟前
Linux中su与sudo命令的区别:权限管理的关键差异解析
linux·运维·服务器·鸿蒙系统·ux·batch命令
eternal__day24 分钟前
Spring Cloud 多机部署与负载均衡实战详解
java·spring boot·后端·spring cloud·负载均衡
新加坡内哥谈技术1 小时前
Meta计划借助AI实现广告创作全自动化
运维·人工智能·自动化
snetlogon201 小时前
JDK17 Http Request 异步处理 源码刨析
android·网络协议·http
zyjyyds1131 小时前
win11系统 Docker Desktop 突然提示Docker Engine stopped解决情况之一
运维·docker·容器
Altairr1 小时前
Docker基础(一)
运维·docker·容器·eureka
筏.k1 小时前
grep、wc 与管道符快速上手指南
linux
文牧之1 小时前
PostgreSQL 的扩展pageinspect
运维·数据库·postgresql
Johny_Zhao1 小时前
华为MAAS、阿里云PAI、亚马逊AWS SageMaker、微软Azure ML各大模型深度分析对比
linux·人工智能·ai·信息安全·云计算·系统运维