鍍金池/ 問答/Linux  HTML/ nginx代理api接口地址,但是接口一直404

nginx代理api接口地址,但是接口一直404

環(huán)境:

在同一臺linux服務(wù)器上部署了兩個node服務(wù),一個服務(wù)監(jiān)聽4000端口,負(fù)責(zé)渲染ejs模板,一個服務(wù)監(jiān)聽8080端口,負(fù)責(zé)提供api

nginx配置:

location / {
    proxy_pass  http://58.87.67.xx:4000;   #node server
}

location api/ {
    rewrite  ^.+api/?(.*)$ /$1 break;
    proxy_pass  http://58.87.67.xx:8080;    #node api server
    proxy_redirect off;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

服務(wù)器已添加https證書
需求:

 在前端發(fā)起以api開頭的請求(如/api/index),nginx rewrite請求地址轉(zhuǎn)發(fā)至8080端口服務(wù),然后node來負(fù)責(zé)請求處理,重寫之后的地址則沒有/api(如/index)

現(xiàn)遇到的問題是請求的接口全部404,不知道是不是匹配規(guī)則寫的是否有問題,也查了很多文檔,但是都沒有解決問題,還請各位大佬幫忙看一下,多謝!

回答
編輯回答
膽怯

去掉 rewrite ^.+api/?(.*)$ /$1 break;試試吧

2018年9月12日 08:07
編輯回答
負(fù)我心
location /api/ {
        proxy_pass http://58.87.67.xx:8080/; #以 / 結(jié)尾就不會帶/api/了
}
2017年2月5日 22:09