在腾讯云轻量应用服务器上部署多个站点时出现404错误,通常与配置不当有关。以下是逐步排查和解决方案:
1. 检查站点根目录与文件路径
- 确认文件存在:确保每个站点的网页文件(如
index.html)已正确上传到对应的目录(如/www/site1、/www/site2)。 - 权限问题:运行
chmod -R 755 /www和chown -R www-data:www-data /www(假设用户组为www-data)。
2. 配置Web服务器多站点(以Nginx为例)
方案一:多个Server块(推荐)
# 站点1配置
server {
listen 80;
server_name site1.com;
root /www/site1;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
# 站点2配置
server {
listen 80;
server_name site2.com;
root /www/site2;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
- 关键点:每个
server块需有独立的server_name和root路径。
方案二:端口区分(临时方案)
server {
listen 8080;
root /www/site2;
# 其他配置...
}
- 访问时需带端口号:
http://IP:8080。
3. 检查域名解析与绑定
- 域名解析:在域名服务商处将
site1.com和site2.com的A记录指向服务器IP。 - 服务器绑定:在腾讯云控制台确认轻量服务器的防火墙规则允许HTTP/HTTPS(80/443端口)。
4. 测试与重载配置
- 测试配置:运行
nginx -t检查语法。 - 重启服务:
systemctl restart nginx(或Apache的httpd)。
5. 其他常见问题
- 默认站点冲突:删除或禁用Nginx的
default配置(通常位于/etc/nginx/sites-enabled/default)。 - SELinux/防火墙:临时关闭测试(
setenforce 0),或添加规则:sudo firewall-cmd --add-service=http --permanent sudo firewall-cmd --reload
6. 日志排查
- Nginx错误日志:
tail -f /var/log/nginx/error.log。 - 访问日志:
tail -f /var/log/nginx/access.log,检查请求是否到达正确的站点。
附:Apache多站点配置示例
<VirtualHost *:80>
ServerName site1.com
DocumentRoot /www/site1
</VirtualHost>
<VirtualHost *:80>
ServerName site2.com
DocumentRoot /www/site2
</VirtualHost>
- 启用配置后运行
sudo a2ensite 配置文件名和systemctl restart apache2。
通过以上步骤,多数404问题可解决。若仍存在问题,需结合日志进一步分析。
云服务器