在 NGINX 中的反向代理位置后面设置我的 Dockered 应用程序(wordpress nextcloud)
如果我使用 NGINX 位置/wordpress 会在受信任域中的 config.php 中进行一些配置后开箱即用并运行 nextcloud。
所以这个配置适用于 nginx 和 nextcloud。(我只需要更改端口。
server {
server_name localhost;
large_client_header_buffers 4 16k;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto http;
proxy_set_header X-Forwarded-Host $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://10.0.100.6:8080;
}
listen [::]:80;
listen 80;
}
但如果我想在不同的位置运行它们,我就会遇到麻烦。两天来我在网上尝试了很多提示,但从空白屏幕到服务器错误,再到不允许查看网站等,都没有奏效。
也许你们对我可以尝试的一些提示。
我已经在 wordpress 中更改了路径。尝试在 nextcloud 上进行代理配置... 没有任何效果。
也许有人有一个正在运行的 nextcloud 代理配置,它不是在 / 而是在另一个位置运行?我尝试了这些修复https://gist.github.com/aleksandar-babic/0cdd3244f4bf6b13dbed68de96ba4ab1对于 wordpress 但对我来说没什么用
我只是使用 http 进行测试
有 nextcloud 或 wordpress 反向代理经验的人可以胜任 :)
所以我已经尝试过这个 nginx 配置:
server {
server_name localhost;
large_client_header_buffers 4 16k;
location /nextcloud {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto http;
proxy_set_header X-Forwarded-Host $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://10.0.100.6:8080;
}
listen [::]:80;
listen 80;
}
带我到这个页面:
未找到 Nextcloud 页面
服务器上找不到该页面或者您可能无权查看该页面。
返回 Nextcloud
Nextcloud – 所有数据的安全家园
因此反向代理正在工作但找不到页面:
我认为这只是 nextcloud 的 config.php 中的一个配置问题
这是我的 nextcloud 的 config.php 文件:
<?php
$CONFIG = array (
'htaccess.RewriteBase' => '/',
'memcache.local' => '\\OC\\Memcache\\APCu',
'apps_paths' =>
array (
0 =>
array (
'path' => '/var/www/html/apps',
'url' => '/apps',
'writable' => false,
),
1 =>
array (
'path' => '/var/www/html/custom_apps',
'url' => '/custom_apps',
'writable' => true,
),
),
'upgrade.disable-web' => true,
'instanceid' => 'ocd4tnvw6501',
'passwordsalt' => 'y0KSe+aYftr3ruAhjc8P+WME7/UBsV',
'secret' => 'ZCsLngn5eg+M9kkuPHInzt5H8APgWta20lPncnFR244WDxLW',
'trusted_domains' =>
array (
0 => '10.0.100.6:8080',
1 => '10.0.100.6:80',
3 => '*',
),
'datadirectory' => '/var/www/html/data',
'dbtype' => 'mysql',
'version' => '28.0.1.1',
'overwrite.cli.url' => 'http://10.0.100.6/nextcloud',
'dbname' => 'db',
'dbhost' => 'mariadb',
'dbport' => '',
'dbtableprefix' => 'oc_',
'mysql.utf8mb4' => true,
'dbuser' => 'mysqluser',
'dbpassword' => 'somemysqlpassword',
'installed' => true,
'overwritewebroot' => '/nextcloud',
'trusted_proxies' => ['10.0.0.6'],
'overwritehost' => '10.0.0.6',
);
我更改了受信任的主机
添加了这个:
'overwritewebroot' => '/nextcloud',
'trusted_proxies' => ['10.0.0.6'],
'overwritehost' => '10.0.0.6',
'overwrite.cli.url' => 'http://10.0.100.6/nextcloud',
也许这只是一个小的配置问题......
答案1
我认为您的位置块缺少一些指令。试试这个
location /nextcloud {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto http;
proxy_set_header X-Forwarded-Host $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://10.0.100.6:8080;
client_max_body_size 0;
proxy_redirect off;
}
nextcloud config.php 也应该包含这个
'overwrite.cli.url' => 'http://your_domain.com/nextcloud',