我已经为此苦苦挣扎了一段时间,但是我似乎无法正确地做到这一点。我在Docker容器中的NGINX服务器上运行了一个小的Angular 7应用程序。该应用程序对后端服务器进行了两次调用(我无法控制)。一次GET和一次POST调用。当我启动应用程序并拨打电话时,我收到一些CORS错误。我对此进行了调查,发现nginx.conf中的PROXY_PASS应该是我的朋友。但是,我还没有做到这一点。 要么没有选择重定向,要么我配置错误,在浏览器中不断收到CORS错误,或者URL错误。
这些是我正在拨打的电话:
/ GET https://lm-available-products.acp.foo.com/lm-productkeys/v2/keys/documents/ {docid}?details = true
/ POST https://lm-online.acp.foo.com:443/LM/internL1/online/infproducts/2009/01
我在配置的nginx.conf的“位置”部分(/末尾,路径,..)中尝试了几种方法。 由于我打了两个不同的电话,所以我也不能,但是它在根(/)上。
我的dockerfile:
FROM tiangolo/node-frontend:10 as build-stage
WORKDIR /app
COPY web/hp-demo-scherm /app/
RUN ls -a
RUN npm install
COPY ./ /app/
RUN npm run build -- --output-path=./dist/out --configuration $configuration
FROM nginx:1.14.2-alpine
COPY /nginx.conf /etc/nginx/nginx.conf
COPY --from=build-stage /app/dist/out/ /usr/share/nginx/html
CMD ["nginx", "-g", "daemon off;"]
我的nginx.conf:
worker_processes 1;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
server {
listen 8080;
server_tokens off;
add_header 'strict-transport-security' 'max-age=157680000 ; includeSubDomains' always;
add_header 'X-Frame-Options' 'SAMEORIGIN' always;
include /etc/nginx/mime.types;
location / {
access_log on;
error_log on;
root /usr/share/nginx/html;
index index.html;
try_files $uri$args $uri$args/ /index.html;
}
location /lm-productkeys/ {
proxy_pass https://lm-available-products.acp.foo.com;
proxy_hide_header 'WWW-Authenticate';
proxy_request_buffering off;
}
location /LM {
proxy_pass https://lm-online.acp.foo.com:443/LM;
proxy_hide_header 'WWW-Authenticate';
proxy_request_buffering off;
}
location ~* \.(eot|otf|ttf|woff|woff2)$ {
root /usr/share/nginx/html;
}
}
}
我还尝试从Angular App调用“ api”,并尝试将其代理到完整的URL,但也没有运气。毫无疑问,这是一个简单的错误,但是我没有更多的线索了:-)。