使用Nginx访问WSO2-APIM

使用Nginx访问WSO2-APIM,nginx,wso2,wso2-am,wso2carbon,nginx-reverse-proxy,Nginx,Wso2,Wso2 Am,Wso2carbon,Nginx Reverse Proxy,我正在使用Nginx访问我的wso2 apim、商店和发行商。 并希望通过以下方式访问: 使用nginx url访问wso2 api管理器,如下所示: 使用nginx url访问wso2存储,如下所示: 使用nginx url访问wso2存储,如下所示: 我尝试在位置块中使用嵌套的位置块,但没有成功。 所以,现在我的工作是分别为它们创建一个位置块,但同样的方法也不起作用 以下是我的商店nginx配置文件: location /wso2am/store/ { proxy_s

我正在使用Nginx访问我的wso2 apim、商店和发行商。 并希望通过以下方式访问:

  • 使用nginx url访问wso2 api管理器,如下所示:

  • 使用nginx url访问wso2存储,如下所示:

  • 使用nginx url访问wso2存储,如下所示:

  • 我尝试在位置块中使用嵌套的位置块,但没有成功。 所以,现在我的工作是分别为它们创建一个位置块,但同样的方法也不起作用

    以下是我的商店nginx配置文件:

    location /wso2am/store/ 
       {
         proxy_set_header   Host                $host;
         proxy_set_header   X-Real-IP           $remote_addr;
         proxy_set_header   X-Forwarded-Host    $host;
         proxy_set_header   X-Forwarded-For     $proxy_add_x_forwarded_for;
    
         proxy_pass https://wso2-ip:9443/store/;
    
         proxy_redirect https://$http_host/store/ /wso2am/store/;
    
         proxy_cookie_path / /wso2am/;
    
         limit_rate 25M;
         #limit_req zone=wso2am burst=100 nodelay;
       }
    
    对于上述配置,store的GUI显示不正确

    对于publisher和carbon(对于apim管理控制台)也是如此。 嵌套的nginx配置如下:

       location /wso2am/ {
             location /wso2am/store/
                {
                proxy_set_header   Host                $host;
                proxy_set_header   X-Real-IP           $remote_addr;
                proxy_set_header   X-Forwarded-Host    $host;
                proxy_set_header   X-Forwarded-For     $proxy_add_x_forwarded_for;
    
                proxy_pass https://wso2-ip:9443/store/;
    
                proxy_redirect https://$http_host/oauth2/callback /oauth2/callback;
                proxy_redirect https://$http_host/ /wso2am/store/;
                proxy_redirect https://$http_host/wso2am/ /wso2am/store/;
    
    
                proxy_redirect https://$http_host/store/ /wso2am/store/;
    
                proxy_cookie_path / /wso2am/;
    
                limit_rate 25M;
    
             }
       }
    
    我必须在哪里更改标题或任何其他位置才能更正


    更新1:

    我的wso2am存储和发布服务器在合并注释并使用以下nginx conf后正在工作:

       location /wso2am/ {
    
                proxy_set_header   Host                $host;
                proxy_set_header   X-Real-IP           $remote_addr;
                proxy_set_header   X-Forwarded-Host    $host;
                proxy_set_header   X-Forwarded-For     $proxy_add_x_forwarded_for;
    
                proxy_pass https://wso2-apim-ip:9443/;
                proxy_redirect https://$http_host/carbon/ /wso2am/carbon/;
                proxy_redirect https://$http_host/store/ /wso2am/store/;
                proxy_redirect https://$http_host/publisher/ /wso2am/publisher/;
    
    
                proxy_cookie_path / /wso2am/;
    
               }
    
    注意:但使用上述配置,我登录到apim carbon,我会登录,然后如果我单击主页上的任何选项(如列表、添加),我会注销。调查后,我会注销,原因是使用Nginx访问请求时,请求中没有发送CSRF令牌


    如何解决csrfprevention.js问题并保持其真实性

    您可以按照本指南[1]使用Nginx配置WSO2 API管理器

    [1]-

    Disclamer:这是一个不完整的答案,因为我自己正在深入研究这个问题

    我对wso2am和wso2ei都面临着同样的问题。我非常确定我们需要在本节中编辑
    /repository/conf/carbon.xml
    (我必须承认,这些评论并不十分清楚):

    
    /wso2am
    / 
    /wso2am
    
    如果您的Nginx在SSL模式下侦听443(由于重定向而无法使用HTTP->如果您计划在本地网络上使用自签名证书,请创建一个自签名证书),则以下操作可以正常工作

    位置/wso2am{
    代理通行证https://wso2_apimanager_container:9443;
    代理设置头主机$Host;
    代理集头X-Real-IP$remote\u addr;
    代理集头X转发主机$Host;
    代理服务器\u ssl\u验证关闭;
    proxy\u set\u header X-Forwarded-For$proxy\u add\u X\u Forwarded\u For;
    }
    位置/wso2am/商店{
    代理通行证https://wso2_apimanager:9443/store;
    }
    位置/wso2am/publisher{
    代理通行证https://wso2_apimanager:9443/publisher;
    }
    位置/wso2am/admin{
    代理通行证https://wso2_apimanager:9443/admin;
    }
    }
    
    这是可行的,但我不完全确定为什么。有人能给我解释一下
    在哪些方面不同吗

    允许管理员发布者和存储代理:要使
    /publisher
    /store
    /admin
    可访问,您需要编辑其各自
    站点的结尾。json
    位于
    /repository/deployment/server/jaggeryapps/name\u of_服务/site/conf/site.json
    中。对于
    /publisher
    ,您可以编写:

    “reverseProxy”:{
    “enabled”:“auto”,//值true、false,“auto”-将查找X转发的-*头
    “主机”:“some.ip.or.domain”,//如果反向代理没有域名,请使用ip
    “上下文”:“/wso2am/publisher”,
    //“regContext”:“”//仅当注册表使用不同的路径时使用
    },
    

    仍然存在登录问题,尽管我遵循了相同的教程,但在完成此操作后,我的基本wso2 apim应用程序重定向到反向代理IP。因此,无法像以前那样访问基本IP。您是否在carbon.xml中设置了主机名?主机名应该是运行wso2 apim的机器?Pubci,在完成URL中提到的步骤后不起作用。我在帖子中更新了一个更新。Hi@Pubci我仍然无法使用nginx配置碳管理控制台,而store and publisher可以很好地使用nginx。你能给我推荐一些设置吗?试着在
    /repository/conf/carbon.xml
    中编辑
    /wso2am