插件窝 干货文章 nginx域名怎么用

nginx域名怎么用

配置 Nginx example server 636    来源:    2025-04-07

Nginx域名配置指南

Nginx作为一款高性能的Web服务器/反向代理服务器,配置域名是其核心功能之一。以下是关于如何在Nginx中使用域名的详细说明:

基本域名配置

  1. 创建服务器块(server block)配置

在Nginx中,每个域名通常对应一个独立的server块配置。配置文件通常位于: - /etc/nginx/conf.d/ 目录下(每个域名一个.conf文件) - 或直接在 /etc/nginx/nginx.conf 文件中

  1. 基本配置示例
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;
    }
}

常见域名使用场景

1. 单个域名配置

server {
    listen 80;
    server_name example.com;

    # 其他配置...
}

2. 多个域名配置

server {
    listen 80;
    server_name example.com example.net example.org;

    # 其他配置...
}

3. 子域名配置

server {
    listen 80;
    server_name subdomain.example.com;

    root /var/www/subdomain.example.com;

    # 其他配置...
}

4. 通配符子域名

server {
    listen 80;
    server_name *.example.com;

    # 根据子域名设置不同的根目录
    root /var/www/$subdomain;

    # 其他配置...
}

5. HTTPS配置(SSL证书)

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;
    # 其他配置...
}

最佳实践

  1. 配置HTTP到HTTPS重定向
server {
    listen 80;
    server_name example.com www.example.com;
    return 301 https://$server_name$request_uri;
}
  1. 配置www和非www统一
# 强制使用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;
}
  1. 使用include组织配置
# 主配置文件
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;

配置完成后

  1. 测试Nginx配置是否正确:
sudo nginx -t
  1. 重新加载Nginx配置:
sudo systemctl reload nginx
# 或
sudo service nginx reload
  1. 检查DNS解析是否生效(确保域名已解析到服务器IP):
dig example.com
nslookup example.com

常见问题解决

  1. 配置不生效

    • 检查DNS解析是否正确
    • 检查Nginx配置是否有语法错误
    • 检查端口是否被正确监听
  2. SSL证书问题

    • 确保证书路径正确
    • 确保证书和私钥匹配
    • 检查证书链是否完整
  3. 权限问题

    • 确保Nginx用户有访问网站目录的权限
    • 检查SELinux/AppArmor设置

通过以上配置,您可以灵活地在Nginx中使用各种域名设置来满足不同的Web服务需求。