如何使用Angular和NodeJS配置ngnix(代理服务器)?

时间:2018-02-02 06:21:25

标签: node.js angular sockets nginx proxy

我试图让ngnix与 NodeJS Angular 一起使用。 目前,我可以访问 https://mypage/api (服务器API)和 https://mypage/ (Angular)。但是,当我尝试使用socket.io登录时,我总是有一个' 套接字连接超时错误'。我认为由于反向代理技术会发生此错误。我错过了任何配置文件吗?或设置错误的标题?

ngnix conf:

server {
        listen              443 ssl;
        all centificate letscrypt Stuff
        location / {
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_pass http://127.0.0.1:4200/;
        }
        location /api/ {
            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_pass http://127.0.0.1:3030/;
        }
    }

谢谢!

2 个答案:

答案 0 :(得分:1)

在您的位置/阻止

中尝试此操作
                        <kendo-date-picker 
                                          name="StartDate"
                                          ng-model="data.StartDate">
                        </kendo-date-picker>


                        <kendo-date-picker 
                                          name="EndDate"
                                          ng-model="data.EndDate">
                        </kendo-date-picker>

在我配置相同的情况下,这对我有所帮助,但是我没有遇到同样的问题。我的套接字连接正常但是有一个握手错误,套接字会在轮询时回退。

答案 1 :(得分:1)

我遇到了同样的问题,并解决了在位置/ 块中添加这些行的问题:

proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;

但是,您的客户端应连接到服务器,不包括 http:// (或 https:// 用于SSL)协议,并且仅使用 server_name < / strong>或 IP地址,或指定 ws:// (或 wss:// for SSL)协议。