自定义身份验证后使用 NGINX 访问 Apache 页面

自定义身份验证后使用 NGINX 访问 Apache 页面

我正在使用 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)

使用错误的凭证是可以的,但是当我提供正确的凭证时,它应该允许我访问我的页面。

请帮我

相关内容