回答
收藏
分享
举报
谢谢,请问如何设置一个延迟响应的时间
提问于2022-12-13 16:55

浏览 4k

想要达到 这个效果,点击网页后,隔20秒再响应网页,我用的是linux里面的nginx代理。


已修改于2023-03-04 04:10



写下您的回答
发表回答
全部回答(1)

按点赞数排序

按时间排序

要实现这个效果,用 NGINX 的 `ngx_http_limit_req_module` 这个模块也可以 就是:

1.  编辑 NGINX 配置文件:打开 NGINX 的配置文件,通常位于 `/etc/nginx/nginx.conf` 或 `/etc/nginx/sites-available/default`。(要是没有就安装一个安装 NGINX)

2. 添加限速配置:在 `server` 块中,添加以下限速配置:

```nginx

http {

   limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;

   

   server {

       listen 80;

       server_name your_domain.com;


       location / {

           limit_req zone=one burst=1 nodelay;

           proxy_pass http://backend_server;  # 替换为实际的后端服务器地址

       }

   }

}

```


在上面的配置中,`limit_req_zone` 定义了一个请求限速的区域,`rate=1r/s` 表示每秒只允许一个请求通过。`limit_req` 指令用于在指定区域内进行请求限速。`burst=1` 表示允许短时间内的一个请求突发,`nodelay` 则确保不会延迟请求。

3. 重启 NGINX:保存配置文件并重启 NGINX 以生效:


```bash

sudo service nginx restart

```


这个时候 用户点击网页时,会在 20 秒内只能发出一个请求,其他请求将被限制。但是重点是,实际的延迟可能会因为客户端和服务器之间的网络延迟结果不一样,这个主要适用基于 NGINX 的反向代理配置。如果后端应用程序里使用了会话或者其他状态,就需要针对的调整,这样才不会影响应用程序的功能。

赞同

0

回复举报

回答于2023-08-22 16:55



回复LiuX
回复
提问者
小罗
这家伙很懒还未留下介绍~
0
文章
1
问答
0
粉丝
相关问答
对于后端是动态服务来说,比如Java和PHP。这类服务器(如JBoss和PHP-FPM)的IO处理能力往往不高。Nginx有个好处是它会把Request在读取完整之前buffer住,这样交给后端的就是一个完整的HTTP请求,从而提高后端的效率,而不是断断续续的传递(互联网上连接速度一般比较慢)。同样,Nginx也可以把response给buffer住,同样也是减轻后端的压力。
点赞 0
浏览 6.1k

公开课里介绍了3个简易的轻量级工具:

1、命令行工具ngxtop, https://github.com/lebinh/ngxtop

2、web页面goaccess, https://goaccess.io/get-started

3、web页面visitors,http://www.hping.org/visitors/

如果你有特别灵活的定制需求,或者集群规模巨大,或者已经搭建好了ELK,那还是推荐用ELK


点赞 0
浏览 3.7k