簡體   English   中英

如何基於動態URL參數配置nginx proxy_pass?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM