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