location / {
proxy_pass http://localhost:5000;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
我已经配置了代理,但我只需要添加这些标头以将它们发送到内部服务器,如此处 Asp.Net Core Google authentication 所述。现在我的配置看起来像这样:
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin webmaster@some_domain.com
ServerName www.some_domain.com
ServerAlias some_domain.com
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:20006/
ProxyPassReverse / http://127.0.0.1:20006/
SSLCertificateFile /etc/letsencrypt/live/some_domain.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/some_domain.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateChainFile /etc/letsencrypt/live/some_domain.com/chain.pem
</VirtualHost>
</IfModule>
更新:
我只需要添加一个标题:
RequestHeader set X-Forwarded-Proto "https"