Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 错误:请求失败,状态代码405,有效负载返回HTML与预期的JSON不同_Node.js_Reactjs_Nginx_Amazon Ec2 - Fatal编程技术网

Node.js 错误:请求失败,状态代码405,有效负载返回HTML与预期的JSON不同

Node.js 错误:请求失败,状态代码405,有效负载返回HTML与预期的JSON不同,node.js,reactjs,nginx,amazon-ec2,Node.js,Reactjs,Nginx,Amazon Ec2,我正在AWS上使用Node JS+React+NGINX设置一个webapps 然后当我想访问url/auth时 它返回了一些HTML代码,而不是我想要的JSON 我在LOCALHOST上测试了代码,效果很好 我试图设置文件夹权限,因为我认为可能是用户权限的问题 我还试着在Nginx.conf上编辑一些东西 下面是我的nginx app.conf upstream webapp{ server 127.0.0.1:3018; } server_names_hash_bucket_siz

我正在AWS上使用Node JS+React+NGINX设置一个webapps 然后当我想访问url/auth时

它返回了一些HTML代码,而不是我想要的JSON 我在LOCALHOST上测试了代码,效果很好

我试图设置文件夹权限,因为我认为可能是用户权限的问题

我还试着在Nginx.conf上编辑一些东西

下面是我的nginx app.conf

upstream webapp{
    server 127.0.0.1:3018;
}

server_names_hash_bucket_size 64;
server_names_hash_max_size 512;

    server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name 127.0.0.1;
        server_name_in_redirect off; 

    if ($http_x_forwarded_proto = 'http'){
       return 301 https://$host$request_uri;
    }


   location / {
        root /home/website/client/build;
        try_files $uri /index.html;
        log_not_found off;
        access_log off;
    }

    #error_page  405     =200 $uri;

    if ( $http_user_agent ~* (nmap|nikto|wikto|sf|sqlmap|bsqlbf|w3af|acunetix|havij|appscan) ) {
        return 403;
    }
    add_header X-Frame-Options DENY;
    add_header X-Content-Type-Options nosniff;
    add_header X-XSS-Protection "1; mode=block;";
    add_header Strict-Transport-Security "max-age=2592000; includeSubDomains" always;
}
我希望输出代码像这样
但是,网络给了我一些其他的东西

你必须定义向上移动的位置:

 # this is an example you can modify the path on as you get it
 location /api {
       proxy_pass http://webapp;
       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;
    }



节点服务器在哪个端口运行,当前的Nginx配置不会将您的API请求代理给节点服务器,您能进一步澄清吗?正如我在上游所述,在端口3018运行的节点服务器Hello感谢您的回复不幸的是,我将代理权限更改为“webapp”就像你说的,它返回错误502错误网关我已经定义了上游名称“webapp”指向“服务器127.0.0.1:3018”你检查了端口3018上运行的应用程序了吗?你能发送一个示例请求路径到
127.0.0.1:3018
?,本地如果你喜欢服务器确实在端口3018上运行,因为本地,我可以毫无问题地尝试webapp,您可以看到,
/api
位置必须与您的请求路径格式匹配,例如,
exampl.com/api
nginx将捕获该路径,并将其代理到端口
3018
,如果路径不是从后面的
/api
开始,nginx将为默认服务器服务
 # this is an example you can modify the path on as you get it
 location /api {
       proxy_pass http://webapp;
       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;
    }