在 NGINX 中,您可以通过配置 server_name
指令来监听特定的域名,而不需要显式指定端口(此时会使用默认的 80 端口或 443 端口,取决于是否启用 SSL)。
server {
listen 80; # 默认监听80端口,可省略
server_name example.com www.example.com;
location / {
root /var/www/example.com;
index index.html;
}
}
端口监听行为:
listen
指令,NGINX 会默认监听 80 端口(HTTP)listen 443 ssl
域名匹配优先级:
server_name
*.example.com
)default_server
的)仅监听域名的配置:
server {
server_name example.com; # 只监听example.com域名,使用默认80端口
# 其他配置...
}
解决方案:
server {
listen 80 default_server;
server_name _;
return 444; # 关闭不符合域名要求的连接
}
server {
server_name example.com;
# 正常配置...
}
解决方案:
server {
server_name example.com;
return 301 $scheme://www.example.com$request_uri;
}
server {
server_name www.example.com;
# 主站点配置...
}
nginx -t
netstat -tulnp | grep nginx
curl -H "Host: example.com" http://服务器IP
如果您有更具体的需求或遇到特殊问题,请提供更多细节,我可以给出更有针对性的解决方案。