You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nginx配置SSL后无法反向代理本地127.0.0.1:8080服务问题

解决Nginx反向代理Fossil SCM的HTTPS访问问题

问题根源分析

当前出现ERR_CONNECTION_REFUSED的核心原因大概率是:

  • Nginx未加载到你的scm站点配置(未完成sites-available到sites-enabled的软链)
  • 防火墙未开放80/443端口
  • Nginx配置加载顺序导致默认server拦截请求(默认server块在include之前,虽精确匹配优先,但需确保配置加载正常)

分步修复方案

1. 确保站点配置已启用

检查/etc/nginx/sites-enabled/目录下是否存在scm站点的软链接:

ls -l /etc/nginx/sites-enabled/

如果没有对应的链接,执行以下命令创建(替换scm.conf为你sites-available中的实际配置文件名):

ln -s /etc/nginx/sites-available/scm.conf /etc/nginx/sites-enabled/

2. 调整nginx.conf的配置加载顺序

将include /etc/nginx/sites-enabled/*.conf;移至默认server块之前,确保精确匹配的站点配置优先加载。修改后的nginx.conf http块如下:

http {
    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    server_names_hash_bucket_size 64;

    # 先加载站点配置,确保精确匹配优先
    include /etc/nginx/sites-enabled/*.conf;

    server {
        listen 443 ssl default_server;
        server_name _;

        ssl_certificate /etc/letsencrypt/live/scm.domain.de/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/scm.domain.de/privkey.pem;

        return 444;
    }

    server {
        listen 80;
        server_name _;
        return 444;
    }
}

3. 验证Nginx配置语法

执行以下命令检查配置是否存在语法错误:

nginx -t

如果输出test is successful,则配置语法正常;若有错误,根据提示修复。

4. 开放防火墙端口

如果使用ufw防火墙,执行以下命令开放80和443端口:

ufw allow 80/tcp
ufw allow 443/tcp
ufw reload

若使用其他防火墙(如firewalld),对应执行开放端口的命令即可。

5. 检查Nginx监听状态

确认Nginx正在监听80和443端口:

ss -tulpn | grep nginx

输出中应包含0.0.0.0:80和0.0.0.0:443的监听记录。

6. 重启Nginx服务

完成上述调整后,重启Nginx使配置生效:

systemctl restart nginx

额外说明

  • https://scm.domain.de:8080返回ERR_SSL_PROTOCOL_ERROR是正常现象:Fossil在8080端口仅提供HTTP服务,不支持SSL,无需处理。
  • 确保Fossil服务正常运行在127.0.0.1:8080,可通过curl http://127.0.0.1:8080验证本地访问是否正常。

内容的提问来源于stack exchange,提问作者Deniz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 04:18:22