移动网络下仅Firefox可访问自建网站问题求助
Symfony6 + Nginx 移动网络仅Firefox可访问的排查与解决
问题现象
- 基于PHP+Symfony6开发的网站,Nginx作为Web服务器,有线网络下所有浏览器均可正常访问
- 移动网络环境下,仅Firefox浏览器能正常访问,其他浏览器提示「连接重置错误」「网络错误」
- 手机开热点,电脑通过该移动网络访问时,同样仅Firefox可正常访问
当前Nginx配置如下:
server { server_name domainname.xx www.domainname.xx XX.XX.XX.XX; root path/to/public; location ~ /.well-known { allow all; } location / { # try to serve file directly, fallback to index.php try_files $uri /index.php$is_args$args; } location ~ ^/index\.php(/|$) { fastcgi_pass unix:/var/run/php/php-fpm.sock; fastcgi_split_path_info ^(.+\.php)(/.*)$; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; fastcgi_param DOCUMENT_ROOT $realpath_root; internal; } #listen 80; listen 443 ssl; # managed by Certbot ssl_certificate /path/to/certificate/fullchain.pem; # managed by Certbot ssl_certificate_key /path/to/certificate/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 } server { if ($host = www.domainname.xx) { return 301 https://$host$request_uri; } # managed by Certbot if ($host = domainname.xx) { return 301 https://$host$request_uri; } # managed by Certbot listen 80; server_name domainname.xx www.domainname.xx XX.XX.XX.XX; return 404; # managed by Certbot }
排查方向与解决方案
1. SSL/TLS 协议兼容性问题
移动网络运营商可能对部分TLS版本或加密套件做了限制,而Firefox的默认协议支持范围更广。
- 检查
/etc/letsencrypt/options-ssl-nginx.conf中的TLS配置,调整为兼容移动网络的参数:# 确保包含主流兼容版本 ssl_protocols TLSv1.2 TLSv1.3; # 使用通用兼容的加密套件 ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; - 重启Nginx生效:
sudo systemctl restart nginx
2. 调整Nginx连接超时参数
移动网络稳定性较差,默认超时设置可能导致连接提前断开。在443端口的server块中添加:
client_timeout 60s; client_header_timeout 60s; client_body_timeout 60s; send_timeout 60s; keepalive_timeout 60s;
3. 检查防火墙/安全组规则
确认服务器防火墙或云服务商安全组未限制移动网络IP访问443端口:
- 执行
sudo ufw status查看规则,确保443端口开放:sudo ufw allow 443/tcp - 云服务器用户需登录控制台,检查安全组入站规则,确保443端口允许
0.0.0.0/0访问
4. 排查Symfony安全配置
检查Symfony的config/packages/security.yaml,避免IP白名单限制移动网络访问:
access_control: # 移除或修改仅允许特定IP段访问的规则 # 示例:- { path: ^/, roles: IS_AUTHENTICATED_ANONYMOUSLY, ips: [192.168.0.0/24] }
5. 清除移动网络DNS缓存
部分运营商DNS缓存可能异常,导致解析错误:
- 手机端切换DNS服务器(如1.1.1.1或8.8.8.8)测试
- 清除浏览器DNS缓存后重试
内容的提问来源于stack exchange,提问作者JesusPTB
相关产品推荐
相关产品推荐

