nginx 默认根目录为 /usr/share/nginx/html,索引文件为 index.html;自定义需修改 /etc/nginx/conf.d/ 下的 server 块配置,设 root 和 index,并确保权限与 selinux 上下文正确,最后 nginx -t 验证后 systemctl reload nginx。

安装完 Nginx 后,默认的网站根目录是 /usr/share/nginx/html,默认索引文件是 index.html。要自定义 root 目录和首页文件,关键不是改安装包自带的配置,而是修改 Nginx 的主配置或 server 块配置,并确保权限和 SELinux(如启用)不阻碍访问。
确认 Nginx 安装路径与主配置位置
CentOS/RHEL 系统用 yum 安装后,Nginx 主配置文件通常在:
-
/etc/nginx/nginx.conf—— 全局配置入口 -
/etc/nginx/conf.d/default.conf—— 默认虚拟主机配置(常被覆盖或删除)
执行 nginx -t 可验证当前加载的配置路径,执行 nginx -V 2>&1 | grep "configure arguments" 可查看编译参数(但 yum 安装一般无需关心)。
修改 root 目录与 index 文件
推荐在 /etc/nginx/conf.d/ 下新建独立配置文件(如 myapp.conf),避免直接改 default.conf,便于维护:
- 创建新目录并放测试页:
sudo mkdir -p /var/www/myappecho "<h1>Hello from myapp</h1>" | sudo tee /var/www/myapp/index.htm - 编辑
/etc/nginx/conf.d/myapp.conf,写入:
server {
listen 80;
server_name localhost;
root /var/www/myapp;
index index.htm;
location / {
try_files $uri $uri/ =404;
}
}
注意:root 指令必须写在 server 块内(不能只在 location 里),否则可能不生效;index 后跟的文件名要与你实际创建的匹配(比如用了 index.htm 就别写 index.html)。
处理权限与 SELinux(RHEL/CentOS 必查)
即使配置正确,页面仍 403 报错,大概率是权限或 SELinux 限制:
- 确保 Nginx 进程用户(通常是
nginx或www-data)对新目录有读取+执行(进入目录)权限:sudo chown -R root:nginx /var/www/myappsudo chmod -R 755 /var/www/myapp - 如果启用了 SELinux(
getenforce返回Enforcing),需打标:sudo semanage fcontext -a -t httpd_sys_content_t "/var/www/myapp(/.*)?"sudo restorecon -Rv /var/www/myapp
重载配置并验证
完成修改后,务必检查语法再重载:
-
sudo nginx -t—— 输出 “syntax is ok” 和 “test is successful” 才继续 -
sudo systemctl reload nginx(或sudo nginx -s reload) - 用
curl http://localhost或浏览器访问,确认返回自定义内容 - 可加
sudo nginx -T查看最终合并后的全部配置,确认 root 和 index 已生效
不复杂但容易忽略细节,尤其是 SELinux 和目录执行权限——这两项是生产环境最常见的“配置写了却没用”的原因。










