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

nginx怎么配置域名

Nginx example 配置 com 796    来源:    2025-04-07

在Nginx中配置域名(虚拟主机)是一个常见操作,以下是详细步骤和示例:


1. 准备工作

  • 已安装Nginx(Ubuntu示例:sudo apt install nginx
  • 拥有域名(如example.com)并已解析到服务器IP
  • 服务器防火墙放行80/443端口

2. 基础域名配置

编辑Nginx配置文件(通常位于/etc/nginx/sites-available/):

sudo nano /etc/nginx/sites-available/example.com

示例配置(HTTP):

server {
    listen 80;
    server_name example.com www.example.com;  # 绑定的域名

    root /var/www/example.com/html;  # 网站根目录
    index index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }

    # 可选:日志配置
    access_log /var/log/nginx/example.com.access.log;
    error_log /var/log/nginx/example.com.error.log;
}

3. 启用配置

  • 创建符号链接到sites-enabled目录: bash sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
  • 测试配置并重启: bash sudo nginx -t # 测试语法 sudo systemctl restart nginx

4. HTTPS配置(推荐)

使用Let's Encrypt免费证书:

sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d example.com -d www.example.com

Certbot会自动修改Nginx配置并启用HTTPS。


5. 高级配置示例

多域名/子域名:

server {
    listen 80;
    server_name api.example.com app.example.com;

    root /var/www/subdomains/html;
    index index.php;
}

反向代理:

location / {
    proxy_pass http://localhost:3000;  # 转发到本地Node.js应用
    proxy_set_header Host $host;
}

6. 验证配置

  • 检查域名解析:ping example.com
  • 检查Nginx状态:systemctl status nginx
  • 在线工具测试:SSL Labs

常见问题

  1. 502 Bad Gateway

    • 检查后端服务是否运行(如PHP-FPM、Node.js)
    • 确认proxy_pass地址正确
  2. 域名无法访问

    • 检查DNS解析是否生效(dig example.com
    • 确认Nginx监听端口(sudo ss -tulnp | grep nginx
  3. 重定向循环

    • 检查HTTPS配置中是否有重复的server_name定义

通过以上步骤,你可以完成Nginx的域名基础配置。根据实际需求,可以进一步调整缓存、负载均衡等参数。