nginx模块以及反向代理配置

一、nginx限制IP,通过ngx_http_access_module模块来限制特定IP访问: 
location / {
           deny 192.168.1.1;  # 阻止这个IP地址
           allow all;         # 允许所有其他IP地址
}

二、 nginx重定向:通过rewrite或return进行重定向
rewrite ^/(.*) http://www.newsite.com/$1 redirect;

301重定向
server {
    listen 80;
    server_name example.com;
    location / {
        return 301 http://www.newsite.com$request_uri;
    }
}

302重定向
server {
    listen 80;
    server_name example.com;
    location / {
        return 302 http://www.newsite.com$request_uri;
    }
}

三、nginx限流:用户访问服务器的请求数或连接数做限制
ngx_http_limit_conn_module及ngx_http_limit_req_module
ngx_http_limit_conn_module:主要用于设置用户并发连接数,一般用于服务器流量异常、负载过大,甚至是大流量的恶意攻击访问等场景。
ngx_http_limit_req_module:主要用于单个ip限流,限制单个ip的请求数,一般用于防止应用层的dos攻击,也可以被限制黑名单方式代替

ngx_http_limit_req_module来实现
http {
    limit_req_zone $binary_remote_addr zone=mylimit:10m rate=1r/s;
 
    server {
        location / {
            limit_req zone=mylimit;
            proxy_pass http://my_upstream;
        }
    }
}

四、反向代理

在Nginx中配置反向代理的基本步骤如下:

  • 打开Nginx配置文件,通常是nginx.conf或者位于/etc/nginx/conf.d/目录下的某个.conf文件。

    http块中,使用server块定义监听端口和接收的请求。

  • server块内部,使用location块来定义反向代理的行为,并指定要代理的上游服务器。

  • 下面是一个简单的反向代理配置示例:

upstream backend {
    server 192.168.1.10:8000;
    server 192.168.1.11:8000 backup;
}

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://backend;
        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_set_header X-Forwarded-Proto $scheme;
    }

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    }
}

listen 80;:指定 Nginx 监听的端口。
server_name example.com;:指定这个配置针对的域名。
location / { ... }:指定匹配路径 / 的请求将被代理到 192.168.1.10:8000。
proxy_pass http://192.168.1.10:8000;:设置代理目标地址。
proxy_set_header:设置代理请求头,以传递客户端信息给后端服务器。
error_page:指定错误页面的处理。

upstream 定义了一个名为 backend 的上游组,包含两个服务器,其中 192.168.1.11:8000 作为备用服务器。

重新加载 Nginx 配置
保存配置文件后,需要重新加载 Nginx 以使新的配置生效:


sudo systemctl reload nginx
如果遇到配置错误,可以使用以下命令检查配置文件的有效性:


sudo nginx -t
如果配置文件有效,上述命令将显示类似以下的输出:


nginx: configuration file /etc/nginx/nginx.conf test is successful
如果配置无效,命令将指出配置文件中的错误。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值