我对使用反向代理完全没有经验,所以我的问题真的很la脚,对此感到抱歉。
我有一台使用多个位置的NGINX反向代理服务器。我想使用apache对位于另一台机器上的我自己的cloud服务器进行新的公共访问。 我想使用_https:// my_public_url / owncloud_到达我自己的cloud服务器,所以我做了如下的位置阻止:
我正在使用的东西
location / {
proxy_pass http://my_owncloudserver_url/;
一切都很好。
但是在这种情况下:
location /owncloud/ {
proxy_pass http://my_owncloudserver_url/;
我得到的 index.php / login 页面没有任何格式,如/ apps,/ core等。仍然需要从“ https://my_public_url/apps/ ...”,“ { {3}} ...”等,而不是文件所在的“ https://my_public_url/core/ ...”,因为这些请求与 / owncloud / 位置不匹配,并且没有代理。
我想我应该使用 rewrite 来更改这些请求的网址,将“ / owncloud /”部分放入网址中。
如果我使用单独的位置来匹配“ / core / ...”请求,例如:
location /core/ {
rewrite ^/core/(.*)$ /owncloud/core/$1 permanent;
}
然后看起来还可以,但我不会做出很多不同的位置来匹配所有各种请求。
我该如何解决? 尽管想法一定很简单,但我还是没有想法。
谢谢,
答案 0 :(得分:0)
我不确定Owncloud。但是在Nextcloud中,您必须在config.php https://docs.nextcloud.com/server/16/admin_manual/configuration_server/config_sample_php_parameters.html#proxy-configurations中配置一些代理参数 请考虑使用Nextcloud,因为它比Owncloud更快,如果是完全开源的,则具有更多功能并且由社区积极维护。
答案 1 :(得分:0)
运行容器时将OWNCLOUD_SUB_URL更新为“/owncloud”,如果不使用容器运行,则查找替代配置
在 nginx 配置上
location /owncloud {
proxy_pass http://my_owncloudserver_url/owncloud;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect off;
proxy_buffering off;
}