NGINX节点套接字,在域上具有自己的端口

时间:2018-07-18 11:43:56

标签: node.js sockets nginx

我有一个laravel项目,需要在相同域但端口为2053的套接字。 节点上的套接字运行。

但是我在使用域名url或其他东西时遇到问题。 套接字的端口为2053。节点正在运行并已连接,一切正常。

我需要一个wss://套接字(使用SSL)。

我使用的域(站点)也正在使用SSL。没有问题。但是现在我需要带端口的域上的套接字。 像这样:

<meta name="websocket" content="wss://example.com:2053">

我做了很多尝试,认为这是NGINX问题。 如果我将在Chrome上与https://example.com:2053一起访问我的网站,则出现此错误:

ERR_SSL_PROTOCOL_ERROR

因此,我认为存在SSL问题。但是我不知道为什么。我使用了与我可以访问的网站相同的工具。

这是我尝试使用nginx的另一个端口访问该站点的尝试之一

upstream node {
    server 127.0.0.1:2053;
}

server {
    server_name www.example.com;
    listen 2054;

    ssl_certificate fullchain.pem;
    ssl_certificate_key privkey.pem;
    ssl_trusted_certificate fullchain.pem;
    include /etc/nginx/snippets/ssl.conf;

    location / {
            proxy_pass http://node;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_read_timeout 86400;
    }
}

在这里,我尝试听2054,然后继续进行https://example.com:2054,但它也没有用。 ERR_SSL_PROTOCOL_ERROR出现相同错误

我也尝试在网站上添加新位置,但是我无法使用位置/原因是我需要该位置才能访问该网站。所以我尝试了:

location /websocket/ {
                proxy_pass http://127.0.0.1:2053;
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
                proxy_read_timeout 86400;
        }

我可以继续https://example.com/websocket来获取该信息

Cannot GET /websocket/

我认为域/ websocket之类的东西不可能存在。那一定是干净的东西

我使用Laravel,Node和NGINX。

如果有人可以帮助我,真是太好了,如何使用像这样的Port在域上创建Socket

example.com:2053

0 个答案:

没有答案