成为Angular 4,Nodejs和Nginx的新用户,我无法配置Nginx来为2个不同的Angular应用程序提供服务。我的问题如下:
我使用角度CLI生成了两个Angular 4应用程序,然后对其进行了修改。完成后,我在它们两个上做了ng build
以获取dist文件夹中的构建文件。第一个应用程序是使用Nodejs中的后端执行JWT Authentification的登录页面。一旦验证完成,它应该将用户重定向到第二个应用程序,即实际的网站
我在登录应用中使用window.location.href='http://localhost:8080/app'
重定向到第二个。
现在,由于第二个应用程序应该检查令牌,因此它存储在浏览器的localStorage中。 为了保留此令牌,两个应用程序必须位于相同的地址和端口上。因此,我想使用NginX作为反向代理。
我安装了Nginx并将这两个应用的文件分别放在/var/www/html/angular/login/
和/var/www/html/angular/app/
中。
我的Nginx sites-available/default
文件如下:
#Default server configuration
server {
listen 8080 default_server;
#listen [::]:8080 default_server;
index index.html;
server_name localhost:8080/;
location / {
alias /var/www/html/angular/login/;
try_files $uri $uri/ /index.html;
}
location /app {
alias /var/www/html/angular/app;
try_files $uri $uri/ /index.html;
}
}
现在发生的事情是,当我继续localhost:8080
时,我会按照自己的意愿获取登录应用,但在进行身份验证时,网址会更改为localhost:8080/app
,因为它应该和名称一样选项卡上的应用程序更改但应用程序的内容未加载。它保留在登录页面上,尽管它似乎可以获取第二个应用程序文件...
看起来好像我已将登录应用程序的文件放在/var/www/html/angular/app/
文件夹中,尽管我没有。
知道它来自哪里?
在2个不同的端口上使用ng serve
之前,应用程序已经过测试,但由于localStorage已连接到域和端口,因此我无法保留令牌。