![](/img/trans.png)
[英]Use multiple WSGI mount points in Apache with an Nginx reverse proxy
[英]Setting up Apache Superset with Nginx as Reverse Proxy
我在使用 Nginx 作為反向代理設置 apache 超集時遇到問題(這可能是 nginx 配置錯誤)。
服務器配置塊(如果我遺漏了什么,請告訴我,我會添加它):
server {
listen 80 default_server;
server_name _;
root /var/www/data;
error_log /var/www/bokehapps/log/nginx.error.log info;
location /static {
alias /usr/lib/python2.7/site-packages/bokeh/server/static;
}
location /superset {
proxy_pass http://0.0.0.0:8088;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_http_version 1.1;
proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
send_timeout 600;
}
}
我能夠卷入 0.0.0.0:8088 以獲取重定向頁面,並且我的請求正在將其發送到 werkzeug。 但是在我的瀏覽器中,一切都是 404。
謝謝你的幫助
不確定是否仍然相關,但由於您在前綴位置( /superset
)上提供服務,即使您是代理傳遞到/
,werkzeug 也在嘗試提供不存在的/superset
路由,因此是 404。
您應該定義一個前綴中間件,可以在此線程中找到一個非常好的解釋: Add a prefix to all Flask routes 。
中間件應該作為superset-config.py
一部分傳遞給 Superset/FAB, 相關文檔
將兩者結合起來,你可能會在你的superset-config.py
得到這樣的東西:
class PrefixMiddleware(object):
def __init__(self, app, prefix='superset'):
self.app = app
self.prefix = prefix
def __call__(self, environ, start_response):
if environ['PATH_INFO'].startswith(self.prefix):
environ['PATH_INFO'] = environ['PATH_INFO'][len(self.prefix):]
environ['SCRIPT_NAME'] = self.prefix
return self.app(environ, start_response)
else:
start_response('404', [('Content-Type', 'text/plain')])
return ["This url does not belong to the app.".encode()]
ADDITIONAL_MIDDLEWARE = [PrefixMiddleware, ]
希望這可以幫助 :)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.