如何使用 apache2 和 nginx 作为反向代理以不同的用户和目录运行网站

如何使用 apache2 和 nginx 作为反向代理以不同的用户和目录运行网站

我当前的设置是 /var/www/domain/*,使用 apache2 和 nginx 作为反向代理。我想将站点目录移动到 /home/user/html/* 下,以便每个网站都可以让具有该文件夹权限的用户访问。

你能给我指个地方吗?我试过找很多指南,但都没有找到!

答案1

使用默认000-default.conf文件作为模板。将其复制到您的虚拟主机的名称并修改您的自定义文件。

您可以按照以下步骤重命名文件:

$ cd /etc/apache2/sites-available
$ sudo mv 000-default.conf mysite.conf
$ cd /etc/apache2
$ sudo mv apache2.conf apache2.conf.test

现在创建您的虚拟主机“mysite.com”。

您可以将 替换/home/web/mysite为任意目录。对于您的情况,您可以使用/home/{user}/projects/web

$ cd /etc/apache2/sites-available
$ sudo cp 000-default.conf mysite.conf
$ sudo mkdir -p /home/web/mysite/www
$ sudo mkdir -p /home/web/mysite/log

如果mysite.com主机不存在,请使用以下命令在本地创建它:

$ sudo nano /etc/hosts

将其添加到hosts文件中:

127.0.0.1  mysite.com

现在编辑您的mysite.conf文件以指向您的Document Root选择。

$ sudo nano /etc/apache2/sites-available/mysite.conf

000-default.conf对此文件进行以下更改。这是该文件与您新创建的文件之间的区别mysite.conf

<虚拟主机 *:80>
        # ServerName 指令设置请求方案、主机名和端口
        # 服务器用来标识自己。这在创建时使用
        # 重定向 URL。在虚拟主机上下文中,ServerName
        # 指定请求的 Host: 标头中必须出现的主机名
        # 匹配此虚拟主机。对于默认虚拟主机(此文件),此
        # 值不是决定性的,因为无论如何它都被用作最后的手段主机。
        # 但是,您必须为任何其他虚拟主机明确设置它。
        服务器名称 mysite.com

        ServerAdmin webmaster@localhost
        DocumentRoot /home/web/mysite/www


        <目录 />
                选项 +FollowSymLinks +ExecCGI +Includes
                要求所有已授予
        </目录>


        # 可用的日志级别:trace8,...,trace1,debug,info,notice,warn,
        # 错误,严重,警报,紧急。
        # 也可以为特定
        # 模块,例如
        #日志级别 info ssl:warn

        错误日志 /home/web/mysite/log/error.log
        CustomLog /home/web/mysite//access.log 合并

        # 对于 conf-available/ 中的大多数配置文件,它们是
        # 在全球范围内启用或禁用,可以
        # 只包含一个特定虚拟主机的行。例如
        # 以下行仅为该主机启用 CGI 配置
        # 在使用“a2disconf”全局禁用它之后。
        #包括conf-available/serve-cgi-bin.conf
</虚拟主机>

# vim: 语法=apache ts=4 sw=4 sts=4 sr noet

现在使用以下命令启用新站点:

$ sudo a2ensite mysite.conf

当更改Apache配置文件时,请使用以下命令重新启动服务:

$ sudo systemctl restart apache2

对 VirtualHost 的目录和文件的写入权限:

您可以使用命令chownchgrp更改 的文件和文件夹的所有者/home/web/mysite/www。如果它们归您的用户 ID 所有,您将拥有对文件和文件夹的读写权限。

您还可以创建一个特定的group组并将用户添加到该特定组,以便该组的用户对文件和文件夹具有读/写访问权限。

相关内容