这是我第一次尝试设置 nginx 反向代理。我想要的是有一个在端口 44801 上运行 http 的 Subversion 服务器。
现在我想使用 nginx 监听 80 端口并转发,同时也监听 443,执行 ssl 终止,然后转发。
这是我的配置文件:
server {
# Port 80 only on local network
listen 80;
server_name freundx;
location /svn {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://freundx:44801/svn;
}
}
server {
# ssl is local and external
listen 443 ssl;
server_name freundx some.domain.com;
ssl_certificate /etc/niginx/ssl/mycert.crt;
ssl_certificate_key /etc/niginx/ssl/mycert.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
location /svn {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://freundx:44801/svn;
}
}
例如,当我打开https://freundx/svn,发生以下情况:
- 浏览器(正确地)请求 https 上的凭证
- 浏览器第二次要求输入凭证,现在是 http
- 现在我在 http
肯定配置中缺少了某些东西。但是缺少什么呢?;-)
答案1
如果有人也遇到了这个问题,请提供信息。我是 nginx 新手,创建了几个配置文件,其中一些文件使用了相同的 serve_name。这不起作用,server_name 应该只使用一次。所以我现在每个子域都有一个配置。