我有一个Proxmox服务器和一个NGINX服务器。作为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;
}
}
这里是阿帕奇的港口
# 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,每次都有坏网关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"
这个配置有什么问题吗?我在互联网上尝试了几种选择,但都没有用。
我认为阿帕奇出于安全原因拒绝了它。但是,我不知道我可以在哪里配置它,以使服务器运行在反向代理后面。
有人能帮我吗?)
发布于 2021-04-26 19:40:27
您配置了可信的代理吗?
为了安全起见,您必须明确定义Nextcloud要信任的代理服务器。将特别处理来自受信任代理的连接,以获取真正的客户端信息,以便用于访问控制和日志记录。参数在config/config.php
中配置
参考资料:
https://stackoverflow.com/questions/67034739
复制相似问题