Ubuntu Apache 配置 - 代理

Ubuntu Apache Configuration - Proxy

提问人:WilsonP 提问时间:10/9/2023 更新时间:10/11/2023 访问量:32

问:

我有一个使用 22.04LTS 的 Linux/Ubuntu 虚拟机

我有一个托管在 WP Engine 中的网站,它正在运行从 NGINX 服务器到此 Ubuntu VM 的 ProxyPass。

每当用户访问以下地址 https://domain-name.com/directory-name/ 它都会执行 ProxyPass http://custom-domain-name.com,并在浏览器地址栏中显示为 https://domain-name.com/directory-name/

显然WP Engine系统不允许传递域和目录。因此,格式不是 100% 匹配。

我需要帮助的问题是在信号到达时配置此服务器 http://custom-domain-name.com 我需要它作为目标 http://custom-domain-name.com/directory-name/ 这是应用程序 Moodle LMS 配置文件所在的位置。

这是在此虚拟机上运行的应用程序所在的位置。

我尝试调整 conf 文件以专门针对目录,但随后它进入了无限循环。

我可以以根目录为目标,并确认PHP是否按预期正确执行,但不能以应用程序为目标。

WordPress Apache 代理 反向代理 Moodle

评论

0赞 y.y 10/9/2023
如果你分享你的domain.conf,人们可以更好地帮助你
0赞 yacc 10/11/2023
这个问题最好在这里 askubuntu.com 或这里问 superuser.com

答:

0赞 Veterini 10/9/2023 #1

在 Moodle 的 config.php 中,你有这个值:

$CFG->wwwroot   = 'http://domain-name.com/moodle'; 

您是否检查过它指向自定义地址而不是默认地址?如果它指向 https://domain-name.com/directory-name/ 这种情况是正常的。你应该做到

$CFG->wwwroot   = 'http://custom-domain-name.com';

我将在此处编辑此消息以补充我在评论中所说的内容: 仍然在配置文件中,您可以找到几个有用的配置,这些配置被注释:

// It is possible to add extra themes directory stored outside of  $CFG->dirroot.
// This local directory does not have to be accessible from internet.
//
//     $CFG->themedir = '/location/of/extra/themes';
//  
// It is possible to specify different cache and temp directories, use local fast filesystem
// for normal web servers. Server clusters MUST use shared filesystem for cachedir!
// Localcachedir is intended for server clusters, it does not have to be shared by cluster nodes.
// The directories must not be accessible via web.
//
//     $CFG->tempdir = '/var/www/moodle/temp';        // Directory MUST BE SHARED by all cluster nodes.
//     $CFG->cachedir = '/var/www/moodle/cache';      // Directory MUST BE SHARED by all cluster nodes, locking required.
//     $CFG->localcachedir = '/var/local/cache';      // Intended for local node caching.
//     $CFG->localrequestdir = '/tmp';                // Intended for local only temporary files. The defaults uses sys_get_temp_dir().

这从我的配置文件的第 482 行开始(但可能因您的版本而异)

在旧版本(此处为 4.3)中,还有一个 $CFG->dirroot=“”;指定。如果您的文件中不存在它,您可能需要尝试将其添加到 wwwroot 下。 为了让您高枕无忧,请不要忘记清除缓存。

(这可能有点幼稚,但不要忘记在您的代理上对您的config.php进行相同的更改^^)

评论

0赞 WilsonP 10/11/2023
这部分有效,因为更改 ROOT 位置以使用自定义域有效,我可以看到维护页面。所有指向文件和子页面的链接都使用 When we would want it as 并且所有资源文件(css、js)都会发生同样的情况http://custom-domain-name.comhttp://domain-name.com/moodle
0赞 Veterini 10/11/2023
您是否还更改了下面的 $CFG->dataroot?除了 css 和 js,如果也可能是因为您使用的是 jscache 选项(相同的文件)和/或开发人员模式(在管理面板中) 编辑:尝试检查配置 .php 中的注释选项:您还可以指定 dirroot,但也可以强制主题强制主题的 css/js 文件。