第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

網(wǎng)關(guān)超時(shí),春季云網(wǎng)關(guān)和Nginx作為反向代理

網(wǎng)關(guān)超時(shí),春季云網(wǎng)關(guān)和Nginx作為反向代理

開滿天機(jī) 2022-09-14 09:45:38
我為我的應(yīng)用程序創(chuàng)建了一個(gè) API 網(wǎng)關(guān),它將充當(dāng)其他微服務(wù)的前端控制器。在我的生產(chǎn)設(shè)置中,我使用Nginx作為網(wǎng)關(guān)的反向代理API 網(wǎng)關(guān)在端口 8080 上運(yùn)行恩金克斯配置如下:gateway-api.conf:server {    listen 80;    server_name api.example.com;    location / {        proxy_set_header        X-Real-IP       $remote_addr;        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;        proxy_http_version 1.1;        proxy_set_header Connection "";        proxy_pass http://localhost:30010/;        keepalive_timeout 500s;    }    keepalive_timeout 500s;    access_log /var/log/nginx/api.log;      error_log /var/log/nginx/api_error.log;}超時(shí)設(shè)置:proxy_connect_timeout 300;proxy_send_timeout 300;proxy_read_timeout 300;send_timeout 300;彈簧云網(wǎng)關(guān)分級文件:compile('org.springframework.cloud:spring-cloud-starter-gateway') compile('org.springframework.cloud:spring-cloud-starter-openfeign') compile("org.springframework.boot:spring-boot-starter-actuator") compile('org.springframework.boot:spring-boot-starter-security')springBootVersion=2.0.3.RELEASEspringDMPVersion=1.0.4.RELEASEspringPlatformBomVersion=Cairo-SR2springCloudVersion=Finchley.RELEASE網(wǎng)關(guān)應(yīng)用程序:@SpringBootApplication@ComponentScan(basePackages = {"com.example"})@EntityScan(basePackages = {"com.example"})@EnableFeignClients(basePackages = "com.example")public class GatewayApplication {    public static void main(String[] args) {        SpringApplication.run(GatewayApplication.class, args);    }}問題陳述:在我的一個(gè)微服務(wù)中,一個(gè) REST API 需要 3 分鐘以上才能完成。如果我通過 調(diào)用此 API,它將在 1 分鐘后失敗,并給出 HTTP 狀態(tài) 504。nginx(api.example.com)卷曲:curl --request GET \  --url http://api.example.com/hellomicroservice/api/take/moretime錯(cuò)誤:504 Timeout while reading the response from Server在 nginx 或 API 網(wǎng)關(guān)中沒有錯(cuò)誤日志。從 nginx 訪問日志:203.129.213.102 - - [01/Apr/2019:08:14:33 +0000] "GET hellomicroservice/api/take/moretime HTTP/1.1" 499 0 "-" "PostmanRuntime/7.3.0"但是,當(dāng)我直接向網(wǎng)關(guān)(網(wǎng)關(guān)端口 8080 上)調(diào)用相同的 API 時(shí),請求將成功處理。卷曲與網(wǎng)關(guān)端口:curl --request GET \  --url http://api.example.com:8080/hellomicroservice/api/take/moretime
查看完整描述

4 回答

?
慕運(yùn)維8079593

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超5個(gè)贊

似乎請求超時(shí)對您來說不是問題。這是連接超時(shí)。我認(rèn)為我們需要看看標(biāo)題

連接

AFAIK,標(biāo)頭定義,連接應(yīng)該是持久的,或者誰有權(quán)維護(hù)/關(guān)閉它。如果連接為 ,則連接將持久。對于保持活動狀態(tài)的連接,客戶端偶爾會發(fā)送 TCP ping,以確保服務(wù)器仍處于活動狀態(tài)并保持連接。根據(jù)卷曲,默認(rèn)情況下,此時(shí)間是每 60 秒一次。Connectionkeep-alive

現(xiàn)在,必須將 配置為接受連接,并使用 keepalive_timeout 指令使其保持活動狀態(tài)一段時(shí)間。如果不存在,則不會使連接保持活動狀態(tài)nginxnginx

這應(yīng)該就是nginx在日志中說499的原因。HTTP499是nginx中的一個(gè)控制錯(cuò)誤,它說客戶端關(guān)閉了連接。在你的情況下關(guān)閉了它。為什么要關(guān)閉它?因?yàn)?nginx 沒有響應(yīng) 60 秒的 TCP ping,因?yàn)槲磫⒂帽3只顒訝顟B(tài)。curlcurl

keepalive_timeout添加到 ~500 或高于應(yīng)用程序超時(shí)的值應(yīng)該可以解決您的問題。

現(xiàn)在,為什么它直接與雄貓合作?我認(rèn)為春天使活動超時(shí)是無限的或非常高的值。通常在雄貓中也有它的60秒。

我希望這能解決你的問題。


查看完整回答
反對 回復(fù) 2022-09-14
?
回首憶惘然

TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超11個(gè)贊

我想這是由于許多其他事情而可能發(fā)生的問題之一。這是一個(gè)對我有用的解決方案(我也在以下位置遇到錯(cuò)誤:/var/log/nginx/error.log

2020/12/30 21:47:47 [錯(cuò)誤] 26765#26765: *13064 上游超時(shí) (110: 連接超時(shí)) 連接到上游時(shí), 客戶端: XXX, 服務(wù)器: example.com, 請求: “GET /eshop HTTP/1.0”, 上游: “http://[::1]:8080/error_50x.html”, 主機(jī): “example.com”

奇怪的是,這并沒有發(fā)生在我的筆記本電腦上,而只發(fā)生在我的服務(wù)器上。所以我檢查了IP,結(jié)果發(fā)現(xiàn)這可能是因?yàn)槿鄙伲海?地址。當(dāng)我將其添加到 lo 網(wǎng)絡(luò)設(shè)備時(shí),我無法復(fù)制超時(shí)。

sudo ip a add ::1/128 dev lo

下一篇:(這是我的理解,我不是100%確定:)此外,由于保持與localhost Java服務(wù)連接的開銷似乎高于僅刪除該連接并在發(fā)出另一個(gè)請求時(shí)再次連接,因此建議對代理使用以下設(shè)置(在nginx的站點(diǎn).conf中):

proxy_http_version 1.1;
proxy_set_header Connection "";

請參閱 https://stackoverflow.com/a/10396874/3223505


查看完整回答
反對 回復(fù) 2022-09-14
?
搖曳的薔薇

TA貢獻(xiàn)1793條經(jīng)驗(yàn) 獲得超6個(gè)贊

由于您的配置缺少proxy_http_version鍵,因此可能仍無法為上游啟用 Keepalive。

引用自:https://www.nginx.com/blog/tuning-nginx/#proxy_http_version

要啟用與上游服務(wù)器的保持活動連接,還必須在配置中包含以下指令:

proxy_http_version 1.1;
proxy_set_header Connection "";

我也會按照Kris的建議將keepalive_timeout保留在配置中。


查看完整回答
反對 回復(fù) 2022-09-14
?
阿晨1998

TA貢獻(xiàn)2037條經(jīng)驗(yàn) 獲得超6個(gè)贊

嘗試將超時(shí)設(shè)置放在 /etc/nginx/conf.d/timeout.conf 中(如果沒有,請創(chuàng)建一個(gè))。設(shè)置以下設(shè)置,

proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
send_timeout 600;


查看完整回答
反對 回復(fù) 2022-09-14
  • 4 回答
  • 0 關(guān)注
  • 127 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號