1

我们已经在我们的组织内部成功地托管了一个 Angular 6 应用程序。现在我们需要使用 NginX RP 托管应用程序,以供外部客户访问。出于某种原因,我们无法控制 NginX 分配给我们的应用程序的 URL。它为我们分配了一个 URL https://ourdomain.com/somename。现在的问题是 NginX 在我们的 Angular 应用程序的 /dist 文件夹中查找名为“somename”的文件夹,该文件夹不存在。我们尝试将整个应用程序放在 /dist/somename/ 中,但它不起作用。我们还尝试将 Angular 应用程序的 baseURL 设置为 /somename/,但效果不佳。解决此问题的有效方法是什么以及如何实现?请注意,我们无法控制它分配给我们应用的 URL。

以下是我们正在使用的 nginx.conf

worker_processes 1;
daemon off;

error_log <%= ENV["APP_ROOT"] %>/nginx/logs/error.log;
events { worker_connections 1024; }

http {
  charset utf-8;
  log_format cloudfoundry '$http_x_forwarded_for - $http_referer - [$time_local]   "$request" $status $body_bytes_sent';
  access_log <%= ENV["APP_ROOT"] %>/nginx/logs/access.log cloudfoundry;
  default_type application/octet-stream;
  include mime.types;
  sendfile on;

  gzip on;
  gzip_disable "msie6";
  gzip_comp_level 6;
  gzip_min_length 1100;
  gzip_buffers 16 8k;
  gzip_proxied any;
  gunzip on;
  gzip_static always;
  gzip_types text/plain text/css text/js text/xml text/javascript application/javascript application/x-javascript application/json application/xml application/xml+rss;
  gzip_vary on;

  tcp_nopush on;
  keepalive_timeout 300;
  port_in_redirect off; # Ensure that redirects don't include the internal container PORT - <%= ENV["PORT"] %>
  server_tokens off;

  server {
    listen <%= ENV["PORT"] %>;
    server_name localhost;

    location / {

        try_files $uri $uri/ /index.html?$query_string;

      root <%= ENV["APP_ROOT"] %>/public;

      index index.html index.htm Default.htm;

      <% if ENV["FORCE_HTTPS"] %>
        if ($http_x_forwarded_proto != "https") {
          return 301 https://$host$request_uri;
        }
      <% end %>

      <% if ENV["APP_CONFIG"] %>
      location /app-config {
        default_type application/json;
        return 200 '<%= ENV["APP_CONFIG"] %>';
      }
      <% end %>
    }

    location /bems {
        default_type  application/json;
        return 200 $http_boeingbemsid;
    }
   }
}
4

0 回答 0