.Net Blazor 0.9 代理错误 502 仅在 http post apache2 & Ubuntu 16.04.6 LTS
.Net Blazor 0.9 proxy error 502 only on http post apache2 & Ubuntu 16.04.6 LTS
我正在使用 Blazor 0.9。
每当我尝试使用 http post。我的浏览器(Chrome)给出代理错误 502。并且仅在 POST 上 NEVER GET。
在本地主机上测试时一切正常。
我正在使用 apache2 反向代理。
数据库中也没有任何记录。
不知道该怎么做,我不是一个有经验的网络开发者,请帮忙。
来自服务器的响应
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>502 Proxy Error</title>
</head><body>
<h1>Proxy Error</h1>
<p>The proxy server received an invalid
response from an upstream server.<br />
The proxy server could not handle the request <em><a href="/api/FoodHistory/test/1/5/2019">POST /api/FoodHistory/test/1/5/2019</a></em>.<p>
Reason: <strong>Error reading from remote server</strong></p></p>
<hr>
<address>Apache/2.4.18 (Ubuntu) Server at ******* Port 80</address>
</body></html>
Apache2 配置
<VirtualHost *:80>
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:5000/ retry=1 acquire=3000 connectiontimeout=28800 timeout=28800 Keepalive=On
ProxyPassReverse / http://127.0.0.1:5000/
ErrorLog /var/log/apache2/app-error.log
CustomLog /var/log/apache2/app-access.log common
</VirtualHost>
Http Post 函数示例(服务器)
[HttpPost("{user}/{day}/{month}/{year}")]
public IActionResult PostFoodHistory(
[FromRoute]string user,
[FromRoute]int day,
[FromRoute]int month,
[FromRoute]int year,
[FromBody]Shared.PostFoodHistory postFood) {
...}
(客户)
@inject HttpClient Http
@functions{
async Task Post() {
await Http.PostJsonAsync(
"/api/FoodHistory/test/1/5/2019",
new PostFoodHistory() {
foodId = food.id,
measurement = 0,
}
);
}
}
终于想通了!
这是 Ubuntu 的权限问题。
所以我只是递归地 chmod 777 整个应用程序目录,现在一切正常。
但我听说你因为安全问题不应该这样做?
无论如何,写权限是个问题:)
我正在使用 Blazor 0.9。 每当我尝试使用 http post。我的浏览器(Chrome)给出代理错误 502。并且仅在 POST 上 NEVER GET。
在本地主机上测试时一切正常。 我正在使用 apache2 反向代理。
数据库中也没有任何记录。
不知道该怎么做,我不是一个有经验的网络开发者,请帮忙。
来自服务器的响应
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>502 Proxy Error</title>
</head><body>
<h1>Proxy Error</h1>
<p>The proxy server received an invalid
response from an upstream server.<br />
The proxy server could not handle the request <em><a href="/api/FoodHistory/test/1/5/2019">POST /api/FoodHistory/test/1/5/2019</a></em>.<p>
Reason: <strong>Error reading from remote server</strong></p></p>
<hr>
<address>Apache/2.4.18 (Ubuntu) Server at ******* Port 80</address>
</body></html>
Apache2 配置
<VirtualHost *:80>
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:5000/ retry=1 acquire=3000 connectiontimeout=28800 timeout=28800 Keepalive=On
ProxyPassReverse / http://127.0.0.1:5000/
ErrorLog /var/log/apache2/app-error.log
CustomLog /var/log/apache2/app-access.log common
</VirtualHost>
Http Post 函数示例(服务器)
[HttpPost("{user}/{day}/{month}/{year}")]
public IActionResult PostFoodHistory(
[FromRoute]string user,
[FromRoute]int day,
[FromRoute]int month,
[FromRoute]int year,
[FromBody]Shared.PostFoodHistory postFood) {
...}
(客户)
@inject HttpClient Http
@functions{
async Task Post() {
await Http.PostJsonAsync(
"/api/FoodHistory/test/1/5/2019",
new PostFoodHistory() {
foodId = food.id,
measurement = 0,
}
);
}
}
终于想通了!
这是 Ubuntu 的权限问题。 所以我只是递归地 chmod 777 整个应用程序目录,现在一切正常。
但我听说你因为安全问题不应该这样做?
无论如何,写权限是个问题:)