我查看了这个question,但没有任何帮助。我正在尝试将localhost:3000配置为代理到端口80。下面是我的nginx配置(位于sites-enabled和sites-available中):
server {
listen 0.0.0.0:80;
server_name fit-forms;
access_log /var/log/nginx/fit-forms.log;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header HOST $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://localhost:3000;
proxy_redirect off;
}
}当我访问IP (这是在DigitalOean上)时,我得到Cannot GET /。没有显示任何静态文件。下面是我的快速代码:
var express = require('express'),
livereload = require('connect-livereload'),
config = require('./config'),
app = express(),
env = app.get('env'),
port = process.env.PORT || config.serverPort || 3000;
if (env === 'development') {
app.use(livereload());
app.use(express.logger('dev'));
app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
}
app.use(express.compress());
app.use(express.urlencoded());
app.use(express.json());
app.use(express.static(__dirname + '/public'));
app.listen(port);
console.log('Express server (' + env + ') running on port ' + port);我想我的nginx配置是缺少的..
发布于 2014-02-27 19:25:11
我也遇到过同样的情况。
关键字在下面的值中:
__dirname + '/public'只需尝试输出它,例如
res.send(__dirname + '/public')您可能会看到问题的根源。
在我的例子中,nodejs应用程序的类别和public_html目录处于同一级别,并且nodejs脚本无法找到它。
所以我这样改变了它:
__dirname + '/../public'https://stackoverflow.com/questions/21999530
复制相似问题