首页 文章

nginx代理如何表达(node.js)?为什么res.data是index.html?

提问于
浏览
1

我用Express framework编写了一个Node.js服务器项目 . 它可以在localhost上运行 . 但是当我在远程服务器上构建它时会遇到一些问题 . (centos 6.5; ngnix 1.11.6; express 4.14.1; node 6.9.5)

  • 这是nginx.conf .
listen       80;
server_name  www.cheeseyu.cn cheeseyu.cn;

#charset koi8-r;

#access_log  logs/host.access.log  main;

location / {
    proxy_pass http://127.0.0.1:3009;
    proxy_redirect off; 
}

location ~ .*.(gif|jpg|jpeg|png|bmp|swf|js|css|woff|ttf|TTF|svg)$ {
    root /home/www/blog;
    if (-f $request_filename) {
        expires 100d;
        break;
    }
}

error_page 405 =200 @405; 
location @405 { 
    proxy_method GET;
    proxy_pass http://static_resource;
}

#error_page  404              /404.html;

var express = require('express'); var path = require('path'); var app = express(); var bodyParser = require('body-parser'); var routes = require('./ routes'); app.use(bodyParser.urlencoded({extended:true})); app.use(bodyParser.json()); app.all('',function(req,res,next){res.header(“Access-Control-Allow-Origin”,“”); res.header(“Access-Control-Allow-Headers”,“X” -Requested-With,Content-Type“); res.header(”Access-Control-Allow-Methods“,”PUT,POST,GET,DELETE,OPTIONS“); res.header(”Content-Type“,”application“ / json; charset = utf-8“); next();});路线(APP); app.set('port',process.env.PORT || 3009); app.listen(app.get('port'),function(){console.log('Express服务器侦听端口'app.get('port'));});

所以我的问题是:

  • a . 为什么状态是200,即使我停止了后台服务器?

  • b . 为什么响应数据是html(内容是index.html)?

  • c . 为什么状态仍然是405,当我使用帖子?我已经尝试了我找到的任何方法 .

  • d . 为什么状态是200,但是请求后't use ' .then ',but use ' .catch'?

  • e . nginx代理如何表达(node.js)?(我认为首先问题是nginx没有代理请求到节点服务器 . )

如果您想了解有关回复的详细信息,可以访问cheeseyu.cn
谢谢你的帮助:)

2 回答

  • -1

    我可以告诉你我在nginx conf中使用了什么

    location / {
        proxy_pass http://your-domain.com:3009;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
    

    这和流程管理器是我需要让我的第一个节点应用程序在服务器上运行 . 作为流程经理,我使用了stableloop . 重要提示:您还必须检查您的节点进程正在运行的女巫端口并使其适合您的端口 .

    希望能帮到你 .

    (并且所有更改后你必须 $~ service nginx reload

  • 0

    这个设置没有任何问题 . 只是因为我重新打开nginx,但它没用 . 你应该停止nginx并打开nginx

相关问题