正在发生的事情:
我使用以下nginx.conf文件进行负载平衡。 Web应用程序已启动并在nginx 8080端口上运行,并且能够访问登录页面。但是,从登录页面转到“注册”页面时,它会抛出错误。
预期结果:
nginx负载均衡器应按照Location指令中的说明将负载重定向到页面。但这没有发生。
nginx文件:
events {
}
http {
upstream 3.121.253.126 {
server 3.121.253.126:8080;
server 3.121.253.126:8080;
server 3.121.253.126:8080;
}
error_log /etc/nginx/error_log.log warn;
client_max_body_size 20m;
proxy_cache_path /etc/nginx/cache keys_zone=one:500m max_size=1000m;
server {
listen 8080;
server_name 3.121.253.126;
root /etc/nginx/html;
index index.html;
location /signup {
root /etc/nginx/html;
index add-user.html;
# proxy_pass http://localhost:8080/signup;
# proxy_set_header Host $host;
# rewrite ^/welcome(.*)$ $1 break;
}
}
}
这是错误日志:
2019/02/21 09:07:42 [错误] 6#6:* 510 recv()失败(104:连接 从对等方重置),同时从上游客户端读取响应头: 127.0.0.1,服务器:3.121.253.126,请求:“ GET / signup HTTP / 1.0”,上游:“ http://127.0.0.1:8080/signup”,主机:“ localhost:8080”, 推荐人:“ http://3.121.253.126:8080/” 2019/02/21 09:07:42 [warn] 6#6: * 510上游服务器暂时禁用,同时从上游读取响应头,客户端:127.0.0.1,服务器:3.121.253.126, 请求:“ GET / signup HTTP / 1.0”,上游: “ http://127.0.0.1:8080/signup”,主机:“ localhost:8080”,引荐来源网址: “ http://3.121.253.126:8080/” 2019/02/21 09:13:10 [错误] 6#6:* 1 open()“ / etc / nginx / html / signup”失败(2:无此类文件或目录), 客户端:157.33.175.127,服务器:3.121.253.126,请求:“ GET / signup HTTP / 1.1”,主机:“ 3.121.253.126:8080”,引荐来源网址: “ http://3.121.253.126:8080/” 2019/02/21 09:15:57 [错误] 6#6:* 3 open()“ / etc / nginx / html / signup”失败(2:无此类文件或目录), 客户端:157.33.175.127,服务器:3.121.253.126,请求:“ GET / signup HTTP / 1.1”,主机:“ 3.121.253.126:8080”,引荐来源网址: “ http://3.121.253.126:8080/”
根据日志,它需要注册html文件。但是,我指示它使用add-user.html文件。不知道为什么不会这样。
请提出建议
答案 0 :(得分:1)
您想将URI /signup
指向位于/etc/nginx/html/add-user.html
的文件
使用Nginx可以实现多种方法,包括rewrite
和try_files
指令。
例如:
location /signup {
try_files /add-user.html =404;
}
root
指令无需在此location
块内重复,因为它将从周围的块继承相同的值。
=404
不执行任何操作,因为add-user.html
始终存在,但是try_files
需要两个参数。有关详细信息,请参见this document。
上述位置将处理任何以/signup
开头的请求(例如/signup/
或/signups
)。
要将其限制为单个URI /signup
,请使用=
修饰符。有关详细信息,请参见this document。
例如:
location = /signup {
try_files /add-user.html =404;
}