原标题:linux nginx 域名配置
导读:
# Linux下Nginx域名配置:从基础到实战,新手也能快速上手在搭建网站时,域名是用户访问的“门牌号”,而Nginx作为轻量高效的Web服务器,常被用来承载域名与网站...
Linux下Nginx域名配置:从基础到实战,新手也能快速上手
在搭建网站时,域名是用户访问的“门牌号”,而Nginx作为轻量高效的Web服务器,常被用来承载域名与网站内容的映射。本文将手把手教你在Linux环境下完成Nginx域名配置,从基础步骤到常见问题,让你快速掌握核心技能。
一、为什么需要配置Nginx域名?
简单来说,Nginx通过虚拟主机(Virtual Host) 功能支持多域名/多网站共存。当用户输入域名(如www.example.com)时,Nginx会根据配置文件中的规则,将请求定向到对应的网站文件目录。没有域名配置,Nginx只能通过IP地址访问,无法实现“一个服务器管多个网站”的效果。
二、准备工作:环境与前提
在开始前,请确保满足以下条件:
- Linux系统:推荐Ubuntu/Debian(
apt安装)或CentOS/RHEL(yum安装),本文以Ubuntu 22.04为例。 - 已安装Nginx:执行
sudo apt install nginx或yum install nginx完成安装。 - 域名解析完成:已购买域名并在域名服务商处将域名A记录指向服务器IP(如域名
example.com解析到服务器公网IP123.45.67.89)。 - 开放端口:服务器防火墙需开放80(HTTP)和443(HTTPS)端口(如
sudo ufw allow 'Nginx Full')。
三、Nginx域名配置核心步骤
1. 找到Nginx配置目录
不同系统的配置文件位置略有差异:
- Ubuntu/Debian:配置文件存放在
/etc/nginx/sites-available/,通过软链接到/etc/nginx/sites-enabled/生效。 - CentOS/RHEL:配置文件直接放在
/etc/nginx/conf.d/。
2. 创建域名配置文件
以域名 example.com 为例,在 /etc/nginx/sites-available/ 目录下新建 example.com 文件:
sudo nano /etc/nginx/sites-available/example.com

输入以下基础配置(单域名示例):
server {
# 监听80端口(HTTP)
listen 80;
# 匹配的域名(支持多个,用空格分隔)
server_name example.com www.example.com;
# 网站文件存放路径(需提前创建目录)
root /var/www/example;
# 默认首页文件
index index.html index.htm;
# 404错误处理
location / {
try_files $uri $uri/ =404;
}
}
关键参数说明:
server_name:用户访问的域名,如example.com或带前缀的www.example.com。root:网站文件实际存放路径(需确保目录存在且权限正确,如sudo mkdir -p /var/www/example)。index:访问根目录时默认打开的文件(如index.html)。
3. 启用配置并测试
-
启用配置:将配置文件软链接到
sites-enabled目录(Ubuntu/Debian):sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/ -
测试配置语法:执行
sudo nginx -t,若显示syntax is ok和test is successful,则配置无误。 -
重启Nginx:
sudo systemctl restart nginx。
4. 进阶配置:多域名与HTTPS
多域名配置
若需支持 example.com 和 test.com 两个域名,只需在同一 server 块中添加 server_name:
server {
listen 80;
server_name example.com www.example.com test.com www.test.com;
root /var/www; # 可共用一个根目录,或按域名分文件夹
}
HTTPS配置(安全访问)
需先安装SSL证书(推荐Let’s Encrypt免费证书):
- 安装Certbot:
sudo apt install certbot python3-certbot-nginx - 获取证书并自动配置Nginx:
sudo certbot --nginx -d example.com -d www.example.com执行后,Certbot会自动修改配置文件,添加443端口监听和SSL证书路径。
四、常见问题与解决方案
1. 访问域名显示404?
- 检查文件路径:确认
root路径是否存在(如/var/www/example是否有index.html文件)。 - 权限问题:Nginx默认以
www-data用户运行,需确保目录权限正确:sudo chown -R www-data:www-data /var/www/example sudo chmod -R 755 /var/www/example
2. 域名解析后仍无法访问?
- DNS缓存问题:域名解析可能存在TTL缓存(通常10分钟),可执行
sudo systemd-resolve --flush-caches刷新DNS缓存。 - 检查服务器IP:通过
curl ifconfig.me确认公网IP是否与域名解析一致。
3. 多域名冲突怎么办?
- 唯一
server_name:每个域名对应独立配置文件,避免重复server_name。 - 优先匹配精确域名:Nginx按配置文件顺序匹配,建议将通用域名(如
*.example.com)放在最下方。
五、总结
Nginx域名配置的核心是通过 server 块定义域名、路径和访问规则。关键步骤可概括为:准备环境→编写配置→测试重启→解决问题。多实践、多检查权限和配置语法,就能快速上手。
若需进一步扩展,可学习反向代理(proxy_pass)、负载均衡等高级功能,让服务器性能更上一层楼。
提示:生产环境建议定期备份Nginx配置文件(如 sudo cp /etc/nginx/sites-available/* /backup/),避免误操作导致服务中断。





还没有评论,来说两句吧...