nginx和快速路由器获取+发布请求问题
问题描述:
我想设置nginx后面的2个节点/快速站点。我想我已经尝试了我在论坛中找到的所有可能的解决方案,但他们只对我部分工作。nginx和快速路由器获取+发布请求问题
我想才达到的是: - 一个域与2节点/快递应用 1)node.dev/site3 2)node.dev/site4
这适用于主都好吗索引文件,但是选择任何按钮/路由我得到一个404错误。
这里是nginx的设置:
server {
listen 80;
root /var/www/node.dev;
server_name node.dev;
index index.htm index.html;
access_log /var/log/nginx/node;
charset utf8;
sendfile off;
location /site3/ {
proxy_pass http://0.0.0.0:8088/;
#rewrite ^/site3/(.*)$ /$1 break;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_cache_bypass $http_upgrade;
}
location /site4/ {
proxy_pass http://0.0.0.0:8080;
#rewrite ^/site4/(.*)$ /$1 break;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_cache_bypass $http_upgrade;
}
}
,这是我的快递路线设置:
var express = require('express');
module.exports = function(app) {
var router = express.Router();
router.get('/ping', function(req, res){
res.send("pong!", 200);
});
router.get('/walk/:walk_name', function(req, res, next) {
res.send("walk!", 200);
});
router.get('/walk', function(req, res, next) {
res.send("No walker!", 200);
});
router.get('*', function(req, res) {
res.sendfile('./public/index.html'); // load the single view file (angular will handle the page changes on the front-end)
});
app.use('/', router);
}
访问与//node.dev/site3返回网站索引文件如预期的那样,然而点击WALK例如它应该返回//node.dev/site3/walk,但是它会返回http://node.dev/walk并且出现404错误。
我无法对节点/快速应用程序进行任何更改。有没有办法通过nginx配置来实现这一点。
请帮忙。提前致谢。
答
尝试将设置proxy_pass
设置为127.0.0.1而不是0.0.0.0。前者意味着“本地主机”,后者意味着“任何主机”。虽然你可能会听“任何IP”,你想连接到一个/特定/ IP。
可能还有其他问题,但这可能有帮助。
我试过把它设置为localhost和127.0.0.1,但问题仍然是一样的。它只是不解决任何POST/GET请求。 –