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

如何在本地DNS配置环境下激活Service Worker?

解决本地Apache配置下Service Worker无法启用的问题

Service Worker 仅允许在 HTTPS 环境(localhost 是浏览器默认豁免的例外)运行,你当前配置的 myapp.domain.com 使用 HTTP 协议,这是导致 Service Worker 无法注册的核心原因。以下是具体解决步骤:

1. 给 Apache 配置 HTTPS(生成本地自签名证书)

首先为本地域名创建自签名 SSL 证书:

# 先创建存放证书的目录
sudo mkdir -p /etc/apache2/ssl
# 生成证书和密钥
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/myapp.key -out /etc/apache2/ssl/myapp.crt

执行命令时按提示填写信息即可,本地使用可以不用严格填写真实内容。

启用 Apache 的 SSL 模块:

sudo a2enmod ssl

修改你的 Apache 虚拟主机配置文件 /etc/apache2/sites-available/myapp.loc.conf,替换为 HTTPS 配置:

<VirtualHost *:443>
    ProxyPreserveHost On
    ProxyRequests Off
    ServerName myapp.domain.com

    # 启用SSL并指定证书路径
    SSLEngine on
    SSLCertificateFile /etc/apache2/ssl/myapp.crt
    SSLCertificateKeyFile /etc/apache2/ssl/myapp.key

    ProxyPass /a http://microservice.domain.com/a
    ProxyPassReverse /a http://microservice.domain.com/a
    ErrorLog ${APACHE_LOG_DIR}/error2.log
    CustomLog /tmp/access.log combined
    Timeout 2400
    ProxyTimeout 2400
</VirtualHost>

重启 Apache 使配置生效:

sudo systemctl restart apache2

2. 信任自签名证书

访问 https://myapp.domain.com 时,浏览器会提示“连接不安全”,这是因为自签名证书未被权威机构认证。你需要:

  • 点击浏览器的“高级”选项
  • 选择“继续访问 myapp.domain.com”(不同浏览器表述略有差异)
  • 将该证书添加到浏览器的信任列表中

3. 验证 Service Worker 状态

打开浏览器开发者工具(F12),切换到 Application -> Service Workers 面板,查看是否有成功注册的 Service Worker 记录。

额外检查:确保你的 Service Worker 注册代码使用根路径,比如 navigator.serviceWorker.register('/sw.js'),避免因为相对路径导致浏览器找不到 sw.js 文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 12:47:22