Nginx作为一款高性能的Web服务器/反向代理服务器,配置域名是其核心功能之一。以下是关于如何在Nginx中使用域名的详细说明:
在Nginx中,每个域名通常对应一个独立的server块配置。配置文件通常位于:
- /etc/nginx/conf.d/
目录下(每个域名一个.conf文件)
- 或直接在 /etc/nginx/nginx.conf
文件中
server {
listen 80;
server_name example.com www.example.com;
root /var/www/example.com;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
server {
listen 80;
server_name example.com;
# 其他配置...
}
server {
listen 80;
server_name example.com example.net example.org;
# 其他配置...
}
server {
listen 80;
server_name subdomain.example.com;
root /var/www/subdomain.example.com;
# 其他配置...
}
server {
listen 80;
server_name *.example.com;
# 根据子域名设置不同的根目录
root /var/www/$subdomain;
# 其他配置...
}
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /path/to/certificate.crt;
ssl_certificate_key /path/to/private.key;
# 其他SSL配置...
root /var/www/example.com;
# 其他配置...
}
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$server_name$request_uri;
}
# 强制使用www
server {
listen 80;
server_name example.com;
return 301 $scheme://www.example.com$request_uri;
}
# 或强制不使用www
server {
listen 80;
server_name www.example.com;
return 301 $scheme://example.com$request_uri;
}
# 主配置文件
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
sudo nginx -t
sudo systemctl reload nginx
# 或
sudo service nginx reload
dig example.com
nslookup example.com
配置不生效
SSL证书问题
权限问题
通过以上配置,您可以灵活地在Nginx中使用各种域名设置来满足不同的Web服务需求。