我在目录(前端)中有 Angular应用程序,在我的EC2计算机的另一个目录中有 NodeJS应用程序(后端API REST)。我有mydomain.com
前端(Angular App)由Nginx在mydomain.com
后端(NodeJS API REST)在端口3000上运行,其所有路由都像/api/whatever/
我想通过NGINX在同一个域后面使用我的SSL证书作为前端和后端。
我的问题是,在Nginx中,是否可以将所有请求(如mydomain.com/api/whatever
)重定向到NodeJS后端,将所有请求(如mydomain.com/angularRoutes
)重定向到前端文件夹?
我的Nginx配置文件是这样的:
upstream {
server apinode 127.0.0.1:3000 max_fails=0;
}
server {
listen 80;
server_name mydomain.com;
rewrite ^ https://$host$request_uri permanent;
}
server {
listen 80;
server_name www.mydomain.com;
rewrite ^(.*)$ $scheme://domain.com$1;
}
server {
listen 443;
server_name mydomain.com;
ssl_on;
ssl_certificate /path/to/server.crt;
ssl_certificate_key /path/to/server.key;
location / {
root /home/ubuntu/frontend;
index index.htm index.html;
}
}
我想补充以下内容:
location /api/ {
proxy_pass: http://apinode
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
}
有可能吗?我需要更改/添加/删除什么?
非常感谢你!