linux nginx 域名配置
从零开始:Linux Nginx域名配置全流程指南
在Linux服务器环境中,Nginx作为高性能的Web服务器,常被用于部署网站、反向代理等场景。域名配置是Nginx的核心功能之一,通过它可以实现“一个服务器托管多个域名站点”的需求。本文将详细介绍Linux系统下Nginx域名配置的完整流程,包括基础站点部署、SSL证书配置及常见问题排查。
一、准备工作
1. 环境依赖
- 系统:Ubuntu 20.04/22.04(本文以Ubuntu为例,CentOS等其他发行版路径类似,需注意配置文件位置差异)
- Nginx:已安装Nginx(
sudo apt install nginx) - 域名:已注册的域名,且DNS解析已指向服务器公网IP(需在域名服务商处配置A记录,将域名指向服务器IP,通常需等待DNS生效,可通过
ping 域名验证)
二、域名配置核心步骤
1. 配置站点目录与文件
Nginx默认将网站根目录设为/var/www/,需先创建站点目录及首页文件:
# 创建网站根目录(以example.com为例)
sudo mkdir -p /var/www/example.com
# 创建首页文件(HTML格式)
echo "<h1>Hello, example.com</h1>" | sudo tee /var/www/example.com/index.html
# 赋予目录权限(Nginx以www-data用户运行)
sudo chown -R www-data:www-data /var/www/example.com
2. 创建Nginx站点配置文件
Nginx通过server块管理域名站点,推荐将每个站点配置文件独立存放于/etc/nginx/sites-available/目录,便于维护:
# 创建站点配置文件
sudo nano /etc/nginx/sites-available/example.com
在配置文件中写入以下内容(以HTTP站点为例):
server {
listen 80; # 监听80端口(HTTP)
server_name example.com www.example.com; # 匹配的域名(支持通配符,如*.example.com)
root /var/www/example.com; # 网站根目录
index index.html index.php; # 首页文件顺序
# 静态资源处理(可选,如需支持PHP可省略)
location / {
try_files $uri $uri/ =404; # 找不到文件时返回404
}
}
3. 启用站点并测试配置
-
启用站点:通过软链接将配置文件添加到
sites-enabled目录(Nginx默认加载该目录下的文件):sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/ -
检查配置语法:避免因语法错误导致Nginx启动失败:
sudo nginx -t # 输出"nginx: configuration file /etc/nginx/nginx.conf test successful"表示语法正确 -
重新加载配置:使修改生效(无需停止服务):
sudo systemctl reload nginx
4. 验证站点生效

访问配置的域名(如http://example.com),若能看到首页内容,说明基础配置成功。若提示404或500,需检查:
- 根目录是否存在、文件是否可读写
- 配置文件路径是否正确、
server_name是否与域名匹配 - 防火墙是否开放80端口(Ubuntu默认开启ufw,需执行
sudo ufw allow 80)
三、进阶:HTTPS配置(SSL证书)
现代网站需强制HTTPS访问,可通过Let's Encrypt免费获取SSL证书:
1. 安装Certbot
sudo apt install certbot python3-certbot-nginx
2. 获取并部署证书
sudo certbot --nginx -d example.com -d www.example.com
Certbot会自动修改Nginx配置,添加HTTPS监听(listen 443 ssl)并配置证书路径。配置文件会新增SSL相关参数:
server {
listen 443 ssl;
server_name example.com www.example.com;
root /var/www/example.com;
index index.html;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
# 其他SSL安全配置(如HSTS、证书链验证等)
}
四、常见问题排查
1. 配置不生效
- 端口占用:检查
netstat -tulpn | grep 80,若80端口被其他程序占用,修改listen端口(如8080) - DNS缓存:若域名未生效,清除DNS缓存(Ubuntu:
sudo systemd-resolve --flush-caches)
2. 访问403/404错误
- 权限问题:确保网站根目录权限为
www-data:www-data,且文件无错误 index指令配置错误:若未指定index文件,需检查root目录下是否存在index.html等文件
五、总结
Nginx域名配置的核心是通过server块定义域名与站点的映射关系,通过合理的目录结构和权限管理可实现多站点独立部署。结合SSL证书可提升网站安全性,日常维护需注意配置文件语法检查和服务重启命令的使用。掌握这些步骤后,即可快速在Linux服务器上搭建稳定的多域名Web服务。
提示:若需反向代理(如将域名指向后端Node.js服务),可在location /中添加proxy_pass http://127.0.0.1:3000;,并确保后端服务已启动。

上一篇





