当前位置: 首页 > 知识库问答 >
问题:

节点.js socket.io 无法使用 Nginx 反向代理找到 404

柳奇希
2023-03-14

所以我想用nodejs/socket做一个游戏。io,但每当我将它部署到带有反向代理的服务器上时,它就不起作用了,在本地一切正常,但在反向代理上,它会出现404未发现错误。

应用端口是5000。

目录结构:

├── app.js
├── client
│   ├── css
│   │   └── main.css
│   ├── fonts
│   ├── img
│   ├── index.html
│   ├── index.pug
│   └── js
│       └── main.js
├── package.json

我的app.js:

var express = require('express');
var app = express();
var serv = require('http').Server(app);
app.get('/node',function(req, res){
  res.sendFile(__dirname + '/client/index.html');
});
app.use('/client',express.static(__dirname + '/client'));
serv.listen(5000);
var SOCKET_LIST={};
var io = require('socket.io')(serv,{});

index.html:

var socket = io();
Img.player.src='client/img/player.png'; //I have more like this

Ngin x:

 location ~ ^/(node|socket\.io) {
 proxy_pass http://127.0.0.1:5000;
 proxy_set_header Host $host;
 proxy_set_header Origin http://$host; 
 proxy_http_version 1.1;
 proxy_cache_bypass $http_upgrade;
 proxy_set_header Upgrade $http_upgrade;
 proxy_set_header Connection $http_connection;
 sub_filter /node /;
 }

当我转到myIpAdress/node/时,我得到了索引.html文件,我可以登录到应用程序 socket.io 工作,不起作用的是指向外部文件“myIpAdress/node/client/img/player.png”的链接,给出404错误。

你知道客户端文件夹的路径是什么吗?

共有1个答案

邹杰
2023-03-14

尝试添加另一个位置块,如下所示:

location /client {
    alias /path/to/client;
    access_log off;
}

上面的位置块告诉NGINX通过从本地/path/to/client目录提供内容来响应客户端对 yourdomain.com/client/ 内容的请求

 类似资料:
  • Nginx的配置文件如下: server { listen 80; #此处应该配置你的域名: server_name doc.iminho.me; charset utf-8; #此处配置你的访问日志,请手动创建该目录: access_log /var/log/nginx/webhook.iminho.me/access.log

  • 主要内容:1. 代理服务器介绍,2. 将请求传递给代理的服务器,3. 传递请求标头,4. 配置缓冲区,5. 选择传出IP地址本文介绍代理服务器的基本配置。 您将学习如何通过不同协议将NGINX请求传递给代理的服务器,修改发送到代理服务器的客户端请求标头,以及配置来自代理服务器的响应缓冲。 代理服务器的基本配置目录 代理服务器介绍 将请求传递给代理的服务器 传递请求标头 配置缓冲区 选择传出IP地址 1. 代理服务器介绍 代理通常用于在多个服务器之间分配负载,无缝地显示来自不同网站的内容,或者通过

  • Nginx 是一个高性能的 HTTP 和反向代理服务器,代码完全用 C 实现,基于它的高性能以及诸多优点,我们可以把它设置为 hyperf 的前置服务器,实现负载均衡或 HTTPS 前置服务器等。 配置 Http 代理 # 至少需要一个 Hyperf 节点,多个配置多行 upstream hyperf { # Hyperf HTTP Server 的 IP 及 端口 server

  • 本文向大家介绍使用Nginx反向代理到go-fastdfs的方法示例,包括了使用Nginx反向代理到go-fastdfs的方法示例的使用技巧和注意事项,需要的朋友参考一下 背景 go-fastdfs是支持http协议的一款分布式文件系统,在一般的项目中,很少是直接将文件系统的地址暴露出来的,大多数都会通过nginx等软件进行反代过去,由于我司的业务和网络环境场景相对特殊,由公网部分(公有云)和内网

  • 我正在尝试测试Liferay的最新版本(Liferay 7.0-ga4),并将其安装在反向代理(nginx)后面。我使用docker和docker compose进行测试,并创建一个虚拟域。 如果我直接访问Liferay的url,并且没有配置反向代理,那么Liferay可以正常工作。 此外,如果我使用根位置,我成功地在nginx服务器后面安装Liferay: 其中,proxy_pass部分中的是在

  • 不幸的是,我不是一个很好的系统管理员,遇到了一个让我头痛的问题。 简短的故事是,我在EC2(Ubuntu 14.04.4 LTS)上运行Nginx,以(a)托管我公司的营销网站(https://example.com,碰巧是Wordpress),(b)作为我们在Heroku(https://app.example.com)上运行的Rails应用程序的反向代理,用于某些路径。我们对example.c