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
相关推荐
只会copy的搬运工2 分钟前
Jenkins 持续集成部署——Jenkins实战与运维(1)
运维·ci/cd·jenkins
catoop9 分钟前
K8s 无头服务(Headless Service)
云原生·容器·kubernetes
o(╥﹏╥)12 分钟前
linux(ubuntu )卡死怎么强制重启
linux·数据库·ubuntu·系统安全
娶不到胡一菲的汪大东17 分钟前
Ubuntu概述
linux·运维·ubuntu
阿里嘎多学长27 分钟前
docker怎么部署高斯数据库
运维·数据库·docker·容器
Yuan_o_29 分钟前
Linux 基本使用和程序部署
java·linux·运维·服务器·数据库·后端
那就举个栗子!44 分钟前
Ubuntu 20.04下Kinect2驱动环境配置与测试【稳定无坑版】
linux·ubuntu
灯火不休➴44 分钟前
[Xshell] Xshell的下载安装使用、连接linux、 上传文件到linux系统-详解(附下载链接)
linux·运维·服务器
Lukea111 小时前
【新教程】Ubuntu server 24.04配置无线网WiFi
linux·ubuntu·教程
小峰编程1 小时前
独一无二,万字详谈——Linux之文件管理
linux·运维·服务器·云原生·云计算·ai原生