2012-07-10 116 views
2

我想使用nginx在端口80上爲couchdb服務。我基本上設置這樣的nginx conf文件:nginx proxy_pass和couchdb的問題

upstream couchdb { 
    server 127.0.0.1:5984; 
} 

server { 
    listen 0.0.0.0:80; 
    server_name example.com; 
    access_log /path/to/log/couchdb.log; 

    location/{ 
     add_header 'Access-Control-Allow-Origin' '*'; 
     proxy_pass http://couchdb; 
     proxy_set_header Host $host; 
     proxy_redirect off; 
    } 
} 

配置似乎工作,除了一個特定的情況。 當我輸入http://example.com/_utils/時,我進入couchdb實例,但如果輸入http://example.com/_utils(注意缺少斜線),我什麼也沒有收到,因爲我正在重定向到http://couchdb/_utils。請注意,http://example.com:5984/_utils/http://example.com:5984/_utils都可以正常工作。

我的WAG是問題與nginx配置,但我不知道那是怎麼回事。

回答

2

看來罪魁禍首是proxy_redirect off;。你爲什麼關掉它?

+0

謝謝。這是我認爲需要的,以便允許一些CORS操作。 – ebadedude 2012-07-10 20:41:31

+0

不,它實際上是一個非常有用的東西。請參閱:http://nginx.org/r/proxy_redirect – VBart 2012-07-10 21:48:21