繁体   English   中英

NGINX 反向代理到 Apache/Nextcloud

[英]NGINX reverse proxy to Apache/Nextcloud

我有一个带有 NGINX 服务器的 Proxmox 服务器。 作为 VPS,我有一个 Nextcloud。 我可以通过 IP 登录。

我的 Proxmox 可通过域获得。 我希望 Nginx 作为我的云和其他服务的反向代理。 我在 proxmox.conf 中有这段代码

 upstream proxmox { server proxmox.domain.com; } server { listen 80 default_server; rewrite ^(.*) https://$host$1 permanent; } server { listen 443; server_name proxmox.domain.com; ssl on; ssl_certificate /etc/ca-certificates/crt.crt; ssl_certificate_key /etc/ca-certificates/key.key; proxy_redirect off; location / { proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_pass https://localhost:8006; proxy_buffering off; client_max_body_size 0; proxy_connect_timeout 3600s; proxy_read_timeout 3600s; proxy_send_timeout 3600s; send_timeout 3600s; } } upstream php { server nextcloud.domain.com; } server { listen 443; server_name nextcloud.domain.com; ssl on; ssl_certificate /etc/ca-certificates/crt.crt; ssl_certificate_key /etc/ca-certificates/key.key; proxy_redirect off; location / { proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_pass https://192.168.178.139:443; proxy_buffering off; client_max_body_size 0; proxy_connect_timeout 3600s; proxy_read_timeout 3600s; proxy_send_timeout 3600s; send_timeout 3600s; } }

这是 Apache 的端口

 # If you just change the port or add more ports here, you will likely also # have to change the VirtualHost statement in # /etc/apache2/sites-enabled/000-default.conf Listen 80 <IfModule ssl_module> Listen 443 </IfModule> <IfModule mod_gnutls.c> Listen 443 </IfModule> NameVirtualHost 127.0.0.1:8080 Listen 127.0.0.1:8080 # vim: syntax=apache ts=4 sw=4 sts=4 sr noet

这是 Apache 的 nextcloud.conf:

 <VirtualHost *:80> DocumentRoot "/var/www/html/nextcloud" ServerName nextcloud.domain.com Redirect permanent / https://nextcloud.domain.com Alias nextcloud.domain.com /var/www/html/nextcloud ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined <Directory /var/www/nextcloud/> Options +FollowSymlinks AllowOverride All <IfModule mod_dav.c> Dav off </IfModule> SetEnv HOME /var/www/htm/nextcloud SetEnv HTTP_HOME /var/www/html/nextcloud Satisfy Any </Directory> </VirtualHost>

我已将端口更改为 80/443,并且每次都会收到 Bad Gateway 502

这是 Nginx 服务器的错误日志。 如果 Apache 为空,则错误日志。

 2021/04/10 14:41:47 [error] 2684#2684: *197 connect() failed (111: Connection refused) while connecting to upstream, client: 91.184.168.251, server: nextcloud.domain.com, request: "GET / HTTP/1.1", upstream: "https://192.168.178.139:443/", host: "nextcloud.domain.com"

我这个配置有什么问题? 我从互联网上尝试了几个选项,但没有任何效果:/

我认为 Apache 出于安全原因拒绝了它。 但我不知道在哪里可以配置它,让服务器在反向代理后面运行。

有谁能够帮我? :)

您是否配置了受信任的代理?

为了安全起见,您必须明确定义 Nextcloud 要信任的代理服务器。 来自受信任代理的连接将经过特殊处理,以获取真实的客户端信息,用于访问控制和日志记录。 参数配置在config/config.php

参考:

https://docs.nextcloud.com/server/21/admin_manual/configuration_server/reverse_proxy_configuration.html?highlight=trusted%20proxy#defining-trusted-proxies

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM