久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術文章
文章詳情頁

nginx 關于 proxy_pass 重試的問題

瀏覽:114日期:2024-06-19 15:51:04

問題描述

各位大神,我的nginx會通過proxy_pass去調tomcat,但是tomcat會間歇性抽風(fullgc)導致超時,7-8秒吧

我想了一個辦法就是請求第一次的時候設置一個超時時間,比如說1s,如果超時了,就在請求一次(換一臺機器)

然后我就有了下面這個nginx配置.(下面是用flask的sleep模擬tomcat的fullgc)

upstream up {server 127.0.0.1:8088;server 127.0.0.1:8089; } server {listen 8087;server_name localhost;access_log logs/host.access.log main;location / { proxy_connect_timeout 1s; proxy_send_timeout 1s; proxy_read_timeout 1s; proxy_next_upstream_timeout 1s; proxy_next_upstream_tries 1; send_timeout 1s;# proxy_next_upstream timeout error; proxy_pass http://up;} }

8088和8089的服務是我用寫的一個mock服務8088會直接睡秒2s,導致nginx超時8089會直接返回一個'hello world',200

我的期望是當我用命令行 curl反復請求8087的時候,會始終返回 'hello world',雖然有些請求比較快,有些請求比較慢(1s多,因為經過了一次超時請求之后重新進行的請求)

但是結果卻并不是這樣

當請求超過1s后,8087他就直接返回 504錯誤了

nginx 關于 proxy_pass 重試的問題

通過查看nginx后臺日志:連續打印了3條超時記錄:

nginx 關于 proxy_pass 重試的問題

但是8088(sleep的那個服務,)僅僅只收到了一個請求(有些小異常,用flask寫的)

nginx 關于 proxy_pass 重試的問題

然后我用wireshark抓包發現

nginx 關于 proxy_pass 重試的問題

求助各位大神?我的配置哪里有問題嗎??

這里可能提提供了些無關信息,如果沒用可以忽略哈~

如過有其他好的處理tomcat fullgc超時問題的,也非常感謝啊~

問題解答

回答1:

You asked for one try, then nginx tries that once.

try 和 retry 是不同的。你 proxy_next_upstream_tries 2; 試試。另外你似乎也誤解了 proxy_next_upstream_timeout 的意思。把它也去掉。

相關文章:
主站蜘蛛池模板: 元氏县| 辛集市| 西乌珠穆沁旗| 汶川县| 崇阳县| 简阳市| 汝阳县| 新余市| 开鲁县| 顺义区| 湘潭县| 靖安县| 怀仁县| 公安县| 张家川| 武陟县| 西青区| 和龙市| 大竹县| 廊坊市| 砀山县| 淳化县| 阿图什市| 阿鲁科尔沁旗| 静宁县| 成安县| 明光市| 沙洋县| 崇义县| 雷山县| 泸西县| 南郑县| 仙桃市| 卫辉市| 辽阳市| 平塘县| 东丰县| 财经| 江津市| 修水县| 华宁县|