【问题标题】:Nginx Config for Camunda WebappCamunda Webapp 的 Nginx 配置
【发布时间】:2020-07-29 22:30:46
【问题描述】:

我正在使用 nginx 反向代理配置 camunda webapp。使用位置/(根路径)加载应用程序非常好。但我需要使用可读的位置路径来访问它,例如/过程/。我尝试了很多次重写和重定向,但没有成功。 在根路径加载所有静态内容,但使用其他位置路径失败。我是 Nginx 的新手,所以如果我遗漏了一些非常琐碎的东西,那将是完全有意义的。

这是我的配置,位置为根路径:

server {

  listen 8080;
  server_name abc.xyz.net;
  rewrite_log on;
  error_log /var/log/nginx/localhost.error_log notice;

  location / {

    # Simple requests
    if ($request_method ~* "(GET|POST)") {

      add_header "Access-Control-Allow-Origin" *;
    }

    # Preflighted requests
    if ($request_method = OPTIONS ) {

      add_header "Access-Control-Allow-Origin" *;
      add_header "Access-Control-Allow-Methods" "GET, POST, OPTIONS, HEAD";
      add_header "Access-Control-Allow-Headers" "Authorization, Origin, X-Requested-With, Content-Type, Accept";
      return 200;
    }

    proxy_pass http://camunda-webapp.xyz.net;

    proxy_set_header X-Forwarded-Host $host/;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_pass_request_headers on;
    proxy_read_timeout 180s;
  }

  error_page 500 502 503 504 /50x.html;
  location = /50x.html {

    root /usr/share/nginx/html;
  }
}

在另一种情况下,如果我尝试在 proxy_pass 中提供完整 URL(请参阅下面的配置),那么它可以工作,但浏览器 URL 会完全更改为 proxy_pass URL。(我什至尝试使用 proxy_redirect 来保留原始 URL,但它没有不工作)

server {

  listen 8080;
  server_name abc.xyz.net;
  rewrite_log on;
  error_log /var/log/nginx/localhost.error_log notice;

  location /process/ {
  rewrite ^\/(?>[process]+)(\/.*) $1 break;

    # Simple requests
    if ($request_method ~* "(GET|POST)") {

      add_header "Access-Control-Allow-Origin" *;
    }

    # Preflighted requests
    if ($request_method = OPTIONS ) {

      add_header "Access-Control-Allow-Origin" *;
      add_header "Access-Control-Allow-Methods" "GET, POST, OPTIONS, HEAD";
      add_header "Access-Control-Allow-Headers" "Authorization, Origin, X-Requested-With, Content-Type, Accept";
      return 200;
    }

    proxy_pass http://camunda-webapp.xyz.net/app/welcome/default;
    proxy_redirect http://camunda-webapp.xyz.net/app/welcome/default https://abc.xyz.net/process

    proxy_set_header X-Forwarded-Host $host/process;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_pass_request_headers on;
    proxy_read_timeout 180s;
  }

  error_page 500 502 503 504 /50x.html;
  location = /50x.html {

    root /usr/share/nginx/html;
  }
}

我们将不胜感激任何类型的信息或帮助。提前致谢。 贝拉·乔!

【问题讨论】:

    标签: nginx nginx-reverse-proxy nginx-config camunda


    【解决方案1】:

    我认为诀窍是将 nginx 的 location context 指定为您的应用程序的 context path

    另外,请删除 url rewrite,因为这里不需要。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-28
      • 1970-01-01
      相关资源
      最近更新 更多