【发布时间】:2021-07-06 03:19:37
【问题描述】:
我有一个带有 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 出于安全原因拒绝了它。但我不知道在哪里可以配置它,让服务器在反向代理后面运行。
有人可以帮我吗? :)
【问题讨论】:
标签: apache nginx ssl reverse-proxy nextcloud