如果可能,使用nginx按位置重定向到节点应用程序?

时间:2014-07-02 10:36:00

标签: node.js angularjs ssl nginx

我在目录(前端)中有 Angular应用程序,在我的EC2计算机的另一个目录中有 NodeJS应用程序(后端API REST)。我有mydomain.com

的SSL证书
  • 前端(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;
}

有可能吗?我需要更改/添加/删除什么?

非常感谢你!

0 个答案:

没有答案