Ubuntu - Nginx 中的安全 PHPMyAdmin

Ubuntu - Nginx 中的安全 PHPMyAdmin

我按照这个网站上的说明安装 PHPMyAdmin。但是这个配置是针对 Apache 的,我用的是 Nginx。网上没找到如何限制访问 PHPMyadmin 的 IP 地址的教程。

有人可以推荐一个网站或者告诉我如何做到这一点吗?

编辑

这是我目前的 Nginx 配置:

server {
        listen   80;

        root /usr/share/nginx/html/cl2g/public/;
        index index.php index.html index.htm;

        server_name schedulium.ca;

        # AnuglarJS UI Front /index.html
        location / {
                rewrite ^/(.*)/$ /$1 redirect;
                if (!-e $request_filename) {
                        rewrite ^(.*)$ /index.html
                        break;
                }
        }

        # PHPMyAdmin
        location /phpmyadmin/ {
                allow my-ip-address;
                deny all;

                rewrite ^/(.*)/$ /$1 redirect;
                if (!-e $request_filename) {
                        rewrite ^(.*)$ /phpmyadmin/index.php;
                }
        }


        # Laravel Back-end /api/index.php
        location /api/ {
               # try_files $uri $uri/ /index.php$is_args$args;
                rewrite ^/(.*)/$ /$1 redirect;
                if (!-e $request_filename) {
                        rewrite ^(.*)$ /api/index.php;
                }
        }

        error_page 404 /404.html;

        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
              root /usr/share/nginx/html;
        }

        # pass the PHP scripts to FastCGI server listening on the php-fpm socket
        # stfu
        location ~ \.php$ {
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                fastcgi_split_path_info ^(.+\.php)(.*)$;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
        }

}

答案1

在 Nginx 中,您可以在站点文件中设置参数,而不是通过 htaccess。

在 /etc/nginx/sites-enabled/ 中编辑相应的站点文件

如果您的位置看起来像这样。

location /phpmyadmin {
....
}

添加以下内容

allow 192.168.0.2/32; 
deny all;

这将仅允许访问 IP 192.168.0.2 的主机

然后重新启动/重新加载 Nginx。

答案2

如果您按照链接中的教程操作,则表示您正在使用 .htaccess 进行 IP 限制。在 Nginx 中,您可以使用 nginx.conf:

server {
listen 80;
server_name name;

location / {
  root /phpmyadmin;
  passenger_enabled on;

  allow   your-public-ip;
  deny    all;
}
}

当然,您必须更改它以使其适合您的 IP 地址。

默认情况下,PHPMyAdmin 安装在/usr/share/phpmyadminUbuntu 中。其中phpMyAdmin.conf应该有一个选项只允许您的 IP。

因此,您可以通过 Nginx 或 PHPMyAdmin 来完成此操作。

相关内容