[英]How to configure nginx proxy_pass based on dynamic url param?
通常,當我使用http://127.0.0.1/apiset/some_dynamc_string並得到json文件時。
/ apiset /是我的應用程序所在的目錄。 “ some_dynamc_string”是一個動態請求字符串。 我將nginx安裝到我的ubuntu 18.04。 當我運行http://cep.myname.com時,我的域名是cep.myname.com,我得到了默認的nginx頁面。
我將/ etc / nginx / sites-available / default配置為 (我也將站點設置為啟用);
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name cep.myname.com;
location / {
proxy_pass http://127.0.0.1:8888/;
}
}
我收到404錯誤。 我需要我的用戶將“ some_dynamc_string”發送為:
http://cep.myname.com/apiset/some_dynamc_string
而且我需要使用proxy_pass,以便可以將“ / apiset / some_dynamc_string”發送到我的后端,如下所示:
http://127.0.0.1:8888/apiset/some_dynamc_string ;
我怎么做? 如上所述,如何基於動態網址參數配置nginx proxy_pass?
When I use error_log with debug I get this:
2018/10/10 08:28:23 [error] 19170#19170: *3 open() "/usr/share/nginx/html/apiset/some_dynamc_string" failed (2: No such file or directory), client: 12.11.10.10, server: localhost, request: "GET /apiset/some_dynamc_string HTTP/1.1", host: "cep.myname.com"
我想我的問題從這里開始:在“ / usr / share / nginx / html / apiset / some_dynamc_string”中,我沒有“ / apiset / some_dynamc_string”。 我只有index.html默認的nginx html文件。 “ apiset / some_dynamc_string”用於我的后端服務器。
當客戶端發送此消息: http ://cep.myname.com/apiset/some_dynamc_string時,它將重定向到“ / usr / share / nginx / html / apiset / some_dynamc_string”。 我需要配置為發送到“ http://127.0.0.1:8888/apiset/some_dynamc_string ”
好。 我找到了。 我在可用的站點和啟用的站點中使用default.conf。 這是修改default.conf的錯誤位置。 正確的路徑是在conf.d目錄中修改default.conf。
1) install nginx
2) run:
nginx -v
(nginx version: nginx/1.15.5)
3) sudo nano /etc/nginx/conf.d/default.conf
server {
listen 80;
listen [::]:80;
error_log /var/log/nginx/your_domain_name.error.log debug;
rewrite_log on;
server_name your_domain_name;
location / {
proxy_pass http://127.0.0.1:8888/;
}
}
4) sudo systemctl reload nginx
5) sudo systemctl restart nginx
6) sudo nginx -t
7) curl http://your_domain_name/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.