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
相关推荐
苦逼IT运维4 分钟前
YUM 源与 APT 源的详解及使用指南
linux·运维·ubuntu·centos·devops
CXDNW16 分钟前
【网络篇】计算机网络——应用层详述(笔记)
服务器·笔记·计算机网络·http·web·cdn·dns
仍有未知等待探索22 分钟前
Linux 传输层UDP
linux·运维·udp
zeruns80229 分钟前
如何搭建自己的域名邮箱服务器?Poste.io邮箱服务器搭建教程,Linux+Docker搭建邮件服务器的教程
linux·运维·服务器·docker·网站
卑微求AC29 分钟前
(C语言贪吃蛇)16.贪吃蛇食物位置随机(完结撒花)
linux·c语言·开发语言·嵌入式·c语言贪吃蛇
北城青36 分钟前
WebRTC Connection Negotiate解决
运维·服务器·webrtc
Hugo_McQueen1 小时前
pWnos1.0 靶机渗透 (Perl CGI 的反弹 shell 利用)
linux·服务器·网络安全
程序那点事儿1 小时前
k8s 之动态创建pv失败(踩坑)
云原生·容器·kubernetes
疯狂的大狗1 小时前
docker进入正在运行的容器,exit后的比较
运维·docker·容器
XY.散人1 小时前
初识Linux · 文件(1)
linux·运维·服务器