在网站管理和运维过程中,为不同的业务模块或子项目配置独立的二级域名是一种常见的需求,通过LNMP(Linux+Nginx+MySQL+PHP)环境绑定二级域名,可以实现不同子域名指向不同的网站目录,从而提升网站管理的灵活性和用户体验,本文将详细介绍在LNMP环境下绑定二级域名的具体步骤、注意事项及相关配置技巧。

准备工作:域名解析与LNMP环境检查
在开始配置二级域名之前,需要确保两项基础工作已完成,首先是域名解析配置,登录域名管理控制台,添加一条A记录或CNAME记录,将二级域名(如blog.example.com)指向服务器的公网IP地址,解析生效时间通常为几分钟到几小时,可通过ping命令或在线DNS查询工具验证。
LNMP环境确认,确保服务器已正确安装Nginx、MySQL、PHP,且各服务运行正常,可通过以下命令检查:
nginx -t:验证Nginx配置语法是否正确;systemctl status nginx mysql php-fpm(或service命令,根据系统版本调整):确认服务状态为active。
创建二级域名网站目录
每个二级域名通常对应一个独立的网站目录,用于存放该站点的文件资源,以blog.example.com为例,建议在/home/wwwroot/目录下创建子目录,结构清晰且便于管理:
mkdir -p /home/wwwroot/blog.example.com
创建完成后,将网站文件(如WordPress程序、静态HTML等)上传至该目录,并设置正确的文件权限:

chown -R www:www /home/wwwroot/blog.example.com # 设置所有者为Nginx运行用户
chmod -R 755 /home/wwwroot/blog.example.com # 设置目录权限为755
``` 如PHP),需确保PHP-FPM用户与Nginx用户一致(通常为`www`),避免权限问题。
### 三、配置Nginx虚拟主机
Nginx通过虚拟主机(Virtual Host)实现多域名绑定,核心配置文件位于`/usr/local/nginx/conf/vhost/`目录(路径可能因LNMP安装版本不同而调整)。
#### 1. 创建虚拟主机配置文件
新建配置文件,如`blog.example.com.conf`,内容如下:
```nginx
server {
listen 80;
server_name blog.example.com; # 二级域名
root /home/wwwroot/blog.example.com; # 网站根目录
index index.php index.html index.htm; # 默认首页文件
# 访问日志配置(可选)
access_log /home/wwwlogs/blog.example.com.log;
error_log /home/wwwlogs/blog.example.com.error.log;
# PHP支持配置(若为静态网站可省略)
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000; # PHP-FPM监听地址
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# 静态文件缓存优化(可选)
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires 7d;
add_header Cache-Control "public, no-transform";
}
}
加载虚拟主机配置
编辑Nginx主配置文件/usr/local/nginx/conf/nginx.conf,在http块中添加以下内容,引入所有虚拟主机配置:
include vhost/*.conf;
重启Nginx服务
执行以下命令使配置生效:
nginx -t && nginx -s reload # 先检查语法,再平滑重启
若提示nginx: configuration is successful,则表示配置正确。
配置PHP-FPM(动态站点必需)
如果二级域名站点使用PHP(如WordPress、Discuz等),需确保PHP-FPM配置正确,LNMP默认会为每个站点创建独立的PHP-FPM池配置文件,位于/usr/local/php/etc/php-fpm.d/目录。

检查PHP-FPM池配置
以blog.example.com为例,确保池配置文件(如blog.example.com.conf)包含以下内容:
[blog.example.com] listen = /tmp/php-cgi-blog.sock # 监听套接字(或127.0.0.1:9000) listen.owner = www listen.group = www listen.mode = 0660 user = www group = www pm = dynamic pm.max_children = 50 pm.start_servers = 5 pm.min_spare_servers = 2 pm.max_spare_servers = 8 pm.max_requests = 1000
重启PHP-FPM服务
systemctl restart php-fpm
测试与问题排查
完成配置后,通过浏览器访问http://blog.example.com,检查是否正常显示网站内容,若无法访问,可按以下步骤排查:
- DNS解析问题:使用
nslookup blog.example.com确认域名是否正确指向服务器IP; - Nginx配置错误:通过
nginx -t检查语法,或查看error.log定位错误; - 文件权限问题:确认网站目录所有者为
www,且权限为755; - PHP-FPM问题:检查PHP-FPM服务状态及监听端口是否正常;
- 防火墙拦截:确保服务器的80端口(HTTP)已开放(如
firewall-cmd --add-port=80/tcp --permanent)。
安全与优化建议
- 启用HTTPS:若涉及用户隐私数据,建议配置SSL证书(可通过Let’s Encrypt免费获取),将HTTP跳转至HTTPS;
- 限制访问IP:通过Nginx的
allow/deny指令限制后台管理页面的访问IP; - 定期备份:配置网站目录和数据库的自动备份,避免数据丢失;
- 配置防盗链:通过
valid_referers指令防止其他网站盗用本站资源。
通过以上步骤,即可在LNMP环境下成功绑定二级域名,实现多站点的独立管理,实际操作中需注意细节,如文件权限、服务配置的匹配性,并根据业务需求灵活调整Nginx和PHP-FPM参数,以提升网站性能和稳定性。














