【发布时间】:2020-06-08 04:24:06
【问题描述】:
我想在彼此后面设置两个反向代理。这是我的网络的一个小草图:
所以我想在我的 Ubuntu 服务器上运行一个 nginx 反向代理,在我的树莓派上运行一个。 Raspberry Pi 没有 24/7 全天候运行的服务,因为它仅用于测试目的或临时服务。
下图显示了我想如何使用 SSL 证书以及我想在哪里颁发它们。我想为在我的 Ubuntu 服务器上运行的服务颁发证书,我想为在我的树莓派上运行在我的 Rasperry Pi 上的服务颁发 SSL 证书。
我的问题是,颁发 SSL 证书(在我的 Raspberry Pi 上使用 Certbot)是成功的,但是当我现在想访问在我的 Raspberry Pi 上运行的 HTTPS 服务时,在我的 Ubuntu 服务器上运行的 Nginx 反向代理没有'不要将所有流量转发到我的 Raspberry Pi 上的 Nginx 反向代理,它使用安装在我的 Ubuntu 服务器上的证书。
这是 Ubuntu 服务器的 Nginx 配置:
server {
server_name raspberry.mydomain.tld www.raspberry.mydomain.tld;
ssl off;
location / {
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_pass https://192.168.0.45:443;
}
}
这是 Raspberry Pi 的 Nginx 配置:
server {
server_name raspberry.mydomain.tld www.raspberry.mydomain.tld;
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/raspberry.mydomain.tld/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/raspberry.mydomain.tld/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
location / {
proxy_pass http://localhost:3000;
}
}
server {
if ($host = www.raspberry.mydomain.tld) {
return 301 https://$host$request_uri;
} # managed by Certbot
if ($host = raspberry.mydomain.tld) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80 default_server;
server_name raspberry.mydomain.tld www.raspberry.mydomain.tld;
return 404; # managed by Certbot
}
我认为这种行为是由于我的 Ubuntu 服务器上的 Nginx 配置引起的,但我不知道。请帮帮我!
谢谢!
巴南柯尼格
【问题讨论】:
标签: nginx raspberry-pi ubuntu-18.04 lets-encrypt nginx-reverse-proxy