Linux怎么配置虚拟主机_Linux在Nginx部署多个站点【实战】-LINUX

server块必须置于http块内且listen+server_name组合不能冲突;推荐按站点分文件管理,准确配置server_name、root权限、SELinux策略、SSL证书链及监听参数,并用curl和nginx -T验证。

nginx.conf 里 server 块怎么写才生效

直接在 nginx.conf 里加 server 块是常见做法,但容易忽略两个前提:一是该块必须放在 http 块内,二是不能和已有 server 的 listen + server_name 组合冲突。比如本地测试时用了 listen 80 却没配 server_name,Nginx 会把所有未匹配的请求都打到这个默认 server 上,导致其他站点访问异常。

实操建议:

  • 每个站点单独建一个配置文件(如 /etc/nginx/sites-available/example.com),用 include /etc/nginx/sites-enabled/*; 引入,比堆在主配置里更易维护
  • server_name 必须写准确:域名、localhost、IP 地址或通配符(如 *.example.com)均可,但 server_name _; 是兜底用的,别误当“通用配置”
  • 开发环境想用不同端口区分站点?可以,但要确保防火墙放行(如 ufw allow 8081),且浏览器访问时带上端口(http://localhost:8081)

root 路径权限和 SELinux 导致 403 怎么查

配置完 server 块,重启 Nginx 后访问返回 403 Forbidden,90% 是路径权限或 SELinux 拦截。Nginx 工作进程(通常是 www-data 或 nginx 用户)必须对 root 目录有执行(x)权限,才能进入子目录;对文件有读(r)权限才能返回内容。

排查步骤:

  • 运行 ls -ld /var/www/example.com,确认目录权限至少是 drwxr-xr-x(即其他用户有 x)
  • 检查 Nginx 进程用户:ps aux | grep nginx,看 worker 进程用的是哪个用户,再用 sudo -u nginx ls /var/www/example.com 模拟访问
  • CentOS/RHEL 系统开启 SELinux 时,需运行 sudo setsebool -P httpd_read_content 1 允许 Nginx 读取非标准路径;也可临时用 sudo setenforce 0 测试是否为 SELinux 导致

HTTPS 站点加 SSL 证书后访问空白或报 ERR_SSL_PROTOCOL_ERROR

加了 ssl_certificate 和 ssl_certificate_key 后页面白屏或浏览器报错,大概率是证书链不全或监听配置遗漏。Nginx 不会自动拼接中间证书,只认你指定的 PEM 文件内容。

夏夕资源网专注于CMS网站模板,主流语言整站网站源码下载,网站建设相关教程分享,好用的软件素材整合下载,提供一站式便捷自助服务。
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"zy.lucklyus.top",如遇到无法解压的请联系管理员!
夏夕资源网-网站模板_免费源码_资源素材 » Linux怎么配置虚拟主机_Linux在Nginx部署多个站点【实战】-LINUX
在线时间:12:00 - 22:00
关注微信公众号:微信公众号
站长邮箱:[email protected]
  • 运营天数: 1392+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 4002624+
  • 本周更新: 0+
  • 最后更新: 2026-03-16

本站指数

×
  • 运营天数: 1392+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 4002624+
  • 本周更新: 0+
  • 最后更新: 2026-03-16