我正在使用 ubuntu 14.04,其中 apache 在端口 8080 上运行,Nginx 在端口 80 上运行
我使用以下代码通过 nginx 访问 apache 页面,并使用我自己的登录页面而不是默认登录页面进行身份验证:
server {
listen 80;
# listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /var/www/;
index index.php index.html;
# Make site accessible from http://localhost/
server_name localhost;
location ~ \.php$ {
proxy_pass http://localhost:8080;
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 X-Forwarded-Proto $scheme;
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
#proxy_set_header Authorization "Basic YWRtaW46YWRtaW4=";
error_page 405 =200 $uri;
}
}
我的登录页面是index.php:
<!DOCTYPE html>
<head>
<title>Login Form</title>
<!--[if lt IE 9]><script src="//html5shim.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
</head>
<body>
<section class="container">
<div class="login">
<h1>Login to Apache using nginx</h1>
<form method="post" action="index.html">
<p><input type="text" name="login" value="" placeholder="Username" required></p>
<p><input type="password" name="password" value="" placeholder="Password" required></p>
<p class="submit"><input type="submit" name="commit" value="Login"></p>
</form>
</div>
</section>
</body>
</html>
我已将密码设置为:/etc/nginx/.htpasswd
我的问题是当我访问页面时它打开index.php它是正确的
每次我输入正确或错误的密码时都会显示相同的页面:
405 不允许 nginx/1.4.6 (Ubuntu)
使用错误的凭证是可以的,但是当我提供正确的凭证时,它应该允许我访问我的页面。
请帮我