我是初学者,如果犯了大错,我很抱歉。让我们开始吧,我有以下问题:我已经设置了运行Ubuntu 16.04的VPS,安装了nginx和node.js。我想要做的是在我加载http://x.x.x.x/然后在http://x.x.x.x/node中运行节点服务器时拥有一个静态网页。我尝试过这样做,设置 / etc / nginx / sites-available / default 这样的文件。
upstream app_x {
server 127.0.0.1:3000;
}
# nginx server instance
server {
listen 80;
server_name _;
location / {
root /var/www/general;
index index.html index.htm index.php;
try_files $uri $uri/ @node;
}
location @node {
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://app_x;
}
}
我能够运行服务器,在我的主目录中设置一个带有 index.html index.js node_modules package.json 的文件夹。但是,当我尝试建立连接时,它并不起作用。我还安装了所有依赖项,即:socket.io ...
这里是index.js:
var app = require('http').createServer(handler)
var io = require('socket.io')(app);
var fs = require('fs');
app.listen(3000);
function handler (req, res) {
fs.readFile(__dirname + '/index.html',
function (err, data) {
if (err) {
res.writeHead(500);
return res.end('Error loading index.html');
}
res.writeHead(200);
res.end(data);
});
}
io.on('connection', function (socket) {
socket.emit('news', { hello: 'world' });
socket.on('my other event', function (data) {
console.log(data);
});
});
的index.html:
<script src="http://localhost:3000/socket.io/socket.io.js"></script>
<script>
var socket = io.connect('http://localhost:3000');
socket.on('news', function (data) {
console.log(data);
socket.emit('my other event', { my: 'data' });
});
</script>
如何解决它以及如何成为文件夹的最佳配置,我应该在哪里保存index.html作为初始静态网页? (如果我把它保存在var / www /&#34; xxxxxx&#34;它可以吗?)