Nginx配置启动报错:无效参数'domain.io,'问题排查求助
Nginx SSL配置错误修复
你的错误核心出在listen指令的写法上,具体问题和修复方案如下:
错误原因
listen指令仅用于定义监听的IP、端口和协议参数(比如ssl),不能直接在listen后放置域名,域名的匹配应该通过server_name指令完成。- 你用逗号分隔多个域名的写法不符合Nginx的语法规范,
listen不支持这种格式。
修正后的配置
server { listen [::]:443 ssl; listen 443 ssl; # 同时监听IPv4,避免仅IPv6设备无法访问 ssl_certificate /etc/ssl/certs/domain.io.pem; ssl_certificate_key /etc/ssl/certs/domain.io.key; root /var/www/html/domain.io/; index index.html; # 在这里配置需要匹配的域名,用空格分隔主域名和泛域名 server_name domain.io *.domain.io; location / { try_files $uri $uri/ =404; } # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} }
额外说明
- 新增
listen 443 ssl;是为了兼容IPv4请求,默认仅配置[::]:443会导致IPv4地址无法访问站点。 - 原配置中的
ssl on;可以省略,因为在listen指令中已经指定了ssl参数,这是Nginx 1.15.0及以上版本推荐的简洁写法。
内容的提问来源于stack exchange,提问作者swematt
相关产品推荐
相关产品推荐

