我们已经在我们的组织内部成功地托管了一个 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;
}
}
}