Como configurar NGINX proxy_pass com Angular 2 PathLocationStrategy

4

No momento, estou servindo meu front end Angular 2 com PM2, sendo executado no endereço IP http://198.xxx.xxx.xx:8080/ . Ao usar HashLocationStrategy do Angular 2, os caminhos não raiz são recarregados corretamente. Ao usar PathLocationStrategy , as atualizações não funcionam. Existe uma maneira de passar o caminho através do proxy_pass no location / , de modo que um caminho como /about seja resolvido para o /about fornecido pelo roteador Angular 2?

Minha configuração atual passará de / para /about no aplicativo, mas se eu atualizar o /about , ele retornará uma página em branco:

upstream app_server {
    server unix:/var/run/unicorn.sock fail_timeout=0;
}

server {
    listen   80;
    root http://198.xxx.xxx.xx:8080/;
    server_name _;
    index index.htm index.html;

    location ~* ^.+\.(jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|mp3|flv|mpeg|avi)$ {
        try_files $uri @app;
    }

    location / {
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $http_host;
            proxy_redirect off;
            proxy_pass http://198.xxx.xxx.xx:8080/;
    }

    location ^~ /api/ {
            proxy_set_header Host $http_host;
            proxy_redirect off;
            proxy_pass http://app_server/api/;
    }
}

Aqui estão os meus registros PM2 para visitar / e, em seguida, clicar em um link para visitar /about e atualizar a página /about :

dailydownbeat-0 [Sat Mar 05 2016 14:59:38 GMT-0500 (EST)] "GET /" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11) AppleWebKit/601.1.56 (KHTML, like Gecko) Version/9.0 Safari/601.1.56"
dailydownbeat-0 [Sat Mar 05 2016 14:59:38 GMT-0500 (EST)] "GET /polyfills.c4ffdebfdb7d4e9ee964.bundle.js" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11) AppleWebKit/601.1.56 (KHTML, like Gecko) Version/9.0 Safari/601.1.56"
dailydownbeat-0 [Sat Mar 05 2016 14:59:38 GMT-0500 (EST)] "GET /main.4916a64a8641d387872b.bundle.js" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11) AppleWebKit/601.1.56 (KHTML, like Gecko) Version/9.0 Safari/601.1.56"
dailydownbeat-0 [Sat Mar 05 2016 14:59:39 GMT-0500 (EST)] "GET /assets/img/dailydownbeat_icon.svg" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11) AppleWebKit/601.1.56 (KHTML, like Gecko) Version/9.0 Safari/601.1.56"
dailydownbeat-0 [Sat Mar 05 2016 14:59:39 GMT-0500 (EST)] "GET /a35720c2fed2c7f043bc7e4ffb45e073.woff" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11) AppleWebKit/601.1.56 (KHTML, like Gecko) Version/9.0 Safari/601.1.56"
dailydownbeat-0 [Sat Mar 05 2016 15:00:02 GMT-0500 (EST)] "GET /about" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11) AppleWebKit/601.1.56 (KHTML, like Gecko) Version/9.0 Safari/601.1.56"
dailydownbeat-0 [Sat Mar 05 2016 15:00:02 GMT-0500 (EST)] "GET /about" Error (404): "Not found"
    
por Louis Cruz 05.03.2016 / 20:42

0 respostas

Tags