相关疑难解决方法(0)

设置apache来为一个nodejs应用程序设置别名?

我有一个PHP应用程序通过端口80上的apache提供服务.我有一个nodejs应用程序在端口3000上独立运行.我想从PHP生成的客户端代码向nodejs应用程序发出ajax请求.问题是相同的源策略不允许不同的端口,我不能在端口80上运行nodejs和apache.

我理想的做法是让它们从客户端的角度看起来都在端口80上运行.如何设置apache以重新路由/别名/对nodejs应用程序的任何特定请求?

希望有道理.注意:不确定这是否可行,或者我是否以正确的方式进行 - 请接受建议.

apache routing alias ports node.js

8
推荐指数
1
解决办法
9069
查看次数

使用htaccess将keystone app重定向到子目录

我是htaccess的新手.我正在使用Keystone.js,我使用它开发了一个正在侦听端口3000的博客.像这样:

https://localhost:3000
Run Code Online (Sandbox Code Playgroud)

现在一切都很好.但我想要的是我的博客应该在这个网址上运行:

https://localhost/blog
Run Code Online (Sandbox Code Playgroud)

我如何实现这种情况,我提供" https:// localhost/blog ",它应该像" https:// localhost:3000 "一样工作.在这种情况下,URL将保持不变:https:// localhost/blog

另外,我还希望当用户访问此网址时:" https:// localhost:3000 ",它应该重定向到:" https:// localhost/blog ".

我该如何实现这种情况?我想要的只是从URL隐藏端口.

我已经尝试了很多东西可以解决,但它不适合我.像这样的东西:

RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^blog(.*) http://localhost:3000/$1 [P,L]
Run Code Online (Sandbox Code Playgroud)

好了,现在这个代码对于主页面是完美的,即:https:// localhost/blog,因为我在htaccess中为它添加了一个规则.但问题是所有链接,图像和包含的文件都在我的博客中被破坏了.

现在我使用基本标记来解决这个问题.但它将我的链接转换为这种格式:

http://localhost:3000/contact
http://localhost:3000/help
http://localhost:3000/post
Run Code Online (Sandbox Code Playgroud)

我认为http:// localhost:3000 /是我页面头中的基本标记.你可以看到3000端口再次出现在我不想显示的网址中.它应该是:

http://localhost/blog/contact
http://localhost/blog/help
http://localhost/blog/post
Run Code Online (Sandbox Code Playgroud)

apache .htaccess mod-rewrite keystonejs

8
推荐指数
1
解决办法
474
查看次数

如何动态加载和流式传输大型视频文件到不发送范围标题的IE?

前段时间我在一些流媒体视频教程中找到了这个功能,这样就不需要将整个文件加载到RAM中来提供文件(这样你就可以提供大视频文件而不会因为超出内存容量而崩溃Node.js - 用电影长度的视频文件不难超越,增加内存分配只是一个创可贴解决方案).

var fs = require("fs"), 
    http = require("http"), 
    url = require("url"), 
    path = require("path");
var dirPath = process.cwd();
var videoReqHandler = function(req, res, pathname) {
    var file = dirPath + "/client" + pathname;
    var range = req.headers.range;
    var positions = range.replace(/bytes=/, "").split("-");
    var start = parseInt(positions[0], 10);
    fs.stat(file, function(err, stats) {
        if (err) {
            throw err;
        } else {
            var total = stats.size;
            var end = positions[1] ? parseInt(positions[1], 10) : total - 1;
            var chunksize = (end …
Run Code Online (Sandbox Code Playgroud)

javascript header http node.js

8
推荐指数
1
解决办法
967
查看次数

在node.js上运行多个站点

我打算用node.js做三个站点.我在网站中有一些常见的模板.我应该在单个node.js实例上运行所有三个站点吗?

我知道'vhost'中间件允许你在单个http服务器上运行多个域.有没有更好的选择呢?

我也有一些静态的html模板,不知道如何在node.js中处理这些?

最后,我想知道这种设置的托管选项?

node.js

7
推荐指数
1
解决办法
3647
查看次数

使用Node.js Express托管多个网站

我在配置具有不同域的两个不同Node.js应用程序时遇到问题.有两个目录

"/abc/" -> express-admin setup (backend) -> admin.abc.com
Run Code Online (Sandbox Code Playgroud)

"/xyz/" -> express setup (frontend) -> abc.com
Run Code Online (Sandbox Code Playgroud)

我需要admin.abc.com指向express-admin设置和abc.com来表达设置.我安装了vhost,并且该站点都侦听端口80.

添加了

app.use(vhost('abc.com', app)); // xyz/app.js file
app.use(vhost('admin.abc.com', app)); // abc/app.js file
Run Code Online (Sandbox Code Playgroud)

我的问题:

  • 永远安装,每当我启动这两个应用程序时,第二个始终停止.我尝试为两个应用程序使用不同的端口,但仍然有相同的错误.他们单独运行没有问题.

  • 我认为我的设置对于域名转发来说太复杂了.有更好的建议吗?可能是我有一个主app.js文件,我可以使用它来将域路由到各自的应用程序,而无需使用每个应用程序的app.js.

subdomain vhosts node.js express forever

7
推荐指数
3
解决办法
1万
查看次数

有没有办法将 nextjs 与 docker 和 nginx 一起使用

我有一个 nextjs 项目,希望使用 Docker 和 nginx 运行。

我希望使用在后台连接到 nextjs 的 nginx(只有 nginx 可以与 nextjs 通信,用户需要与 nginx 通信才能与 nextjs 通信)。

假设它是标准的nextjs项目结构和dockerfile内容(下面提供),有没有办法在docker中与nextjs一起使用nginx?

我知道我可以使用 Docker-compose。但我想将其保留在一个 docker 映像下。因为我打算将图像推送到 heroku 虚拟主机。

注意:我正在使用服务器端渲染

docker文件

# Base on offical Node.js Alpine image
FROM node:latest as builder

# Set working directory
WORKDIR /usr/app

# install node-prune (https://github.com/tj/node-prune)
RUN curl -sfL https://install.goreleaser.com/github.com/tj/node-prune.sh | bash -s -- -b /usr/local/bin

# Copy package.json and package-lock.json before other files
# Utilise Docker cache to save re-installing dependencies if unchanged
COPY package.json ./ …
Run Code Online (Sandbox Code Playgroud)

nginx docker next.js

7
推荐指数
1
解决办法
5524
查看次数

Nginx.conf和Node.js设置方案

今天我第一次安装了NGINX服务器.它工作得很好但我面临一个小问题,服务器的配置与node.js一起工作.

我想在nginx.conf中使用以下逻辑.

  1. 要禁用的目录列表
  2. 从NGINX提供的所有静态文件(images,js,less和css)
  3. 所有请求如http:// hostname/remote_data/??/?? / ?????? 被路由到node.js服务器
  4. 所有请求如http:// hostname/??/?? / ?????? 要路由到index.html,所以不要到达node.js

问号是可选参数:)可以有0到7个参数.

如果这个设置方案很容易完成,我很抱歉,但我正在与它斗争近3个小时而且我被卡住了.第1步和第2步准备就绪 - 谷歌10倍.

关心丹

nginx node.js

6
推荐指数
1
解决办法
6486
查看次数

Node.js事件循环 - nginx/apache

nginx和Node.js都有事件循环来处理请求.我把nginx放在Node.js前面,就像这里推荐的那样

仅使用Node.js与使用Apache/Nginx的Node.js

使用此处显示的设置

Node.js + Nginx - 现在怎么办?

  1. 两个事件循环如何一起玩?两者之间是否存在冲突风险?我想知道因为Nginx可能无法每秒处理与Node.js一样多的事件,反之亦然.例如,如果Nginx每秒可以处理1000个事件但node.js只能处理500个,那么这不会导致问题吗?(我不知道1000,500是否是合理的数量级,你可以纠正我.)

  2. 把Apache放在Node.js面前怎么样?Apache没有事件循环.只是线程.所以不会把Apache放在Node.js前面打败目的吗?

  3. 2010年的演讲中,Node.js的创建者Ryan Dahl有望完全摆脱nginx/apache /,让节点直接与互联网对话.你觉得什么时候会成为现实?

apache nginx node.js

6
推荐指数
1
解决办法
1895
查看次数

nginx,node.js和socket.io - 有工作婚姻吗?

nginx 是一个杀手级静态文件服务器.

它可以服务node.js,如在这个例子中,但是以有限的方式.

nginx显然无法给代理websockets.

我发现可能有用的唯一方法就是按照本文使用HAProxy前端- 但它是从2011年10月6日开始的.

必须是一个常见问题,但我找不到一个非常常见的解决方案.


(有关完整的解决方案和详细信息,请参阅https://github.com/bangkok-maco/barebone-node)

ip测试架构:

  • 127.0.0.12 - www.chat.nit - public,在/ etc/hosts和haproxy中
  • 127.0.1.12 - 内部nginx Web服务器
  • 127.0.2.12 - 内部聊天服务node.js socket.io

/etc/haproxy/haproxy.cfg:

global
 maxconn 4096
 nbproc 2
 daemon
 # user nobody
 log             127.0.0.1       local1 notice

defaults
 mode http

# listen on 127.0.0.12:80
frontend app
 bind 127.0.0.12:80
 mode tcp
 timeout client 86400000
 default_backend www_backend
 acl is_chat hdr_dom(Host) chat …
Run Code Online (Sandbox Code Playgroud)

nginx haproxy websocket node.js socket.io

5
推荐指数
1
解决办法
3764
查看次数

如何在node.js中为用户创建子域

我想在我的应用程序中在username.domain.com上分享一些用户信息.用户创建帐户后,子域名应该可用.

我发现在这种情况下可能有用的好模块:Express Subdomain

如何正确使用该模块?也许这个模块不是那么有用,我应该使用哪一个?

javascript node.js express

5
推荐指数
1
解决办法
4178
查看次数