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