使用 nginx 在主目录中托管文件夹

Jos*_*ech 12 linux unix nginx

我想在 adduser 脚本中添加一个条件来更新 nginx.conf 以便在我创建新用户时将 ~/www 加载为http://ipaddress/~ user 。

当用户名为 www.domainname 时,它​​将在 ~/www 文件夹中托管该域名。

是否有脚本已经做到了这一点?

小智 28

您无需在创建用户时向 nginx 添加任何内容。只需在您的服务器块中使用类似的东西:

location ~ ^/~(.+?)(/.*)?$ {
    alias /home/$1/www$2;
    autoindex on;
}
Run Code Online (Sandbox Code Playgroud)

检查您的发行版 /etc/skel

如果你 mkdir /etc/skel/www 所有由 adduser(或你的发行版 adduser-script)创建的用户目录默认都将拥有这个目录。

  • 这不会使您的服务器容易受到路径遍历攻击吗?例如。如果您请求“example.com/~../foo”,您将获得路径“/home/../www/foo”,该路径位于用户目录之外。 (3认同)