云主机怎么关闭网站访问?

HCRM技术_小炮 云主机 2026-04-17 1 0

在云主机上关闭网站访问,有多种方法,具体取决于您想达到的效果(临时关闭、永久关闭、仅限制特定访问等)以及您使用的Web服务器软件。

下面我将分场景和服务器类型(Nginx/Apache)为您详细介绍。

核心原理

关闭网站访问的本质是让Web服务器(如Nginx, Apache)停止对HTTP/HTTPS请求的响应,主要有以下几种途径:

1、停止Web服务:直接关停服务器软件。

2、修改服务配置:让服务器不监听80/443端口,或将网站配置指向一个无效的路径。

3、使用防火墙拦截:在系统层面阻断外部对80/443端口的访问。

4、修改域名解析:将域名指向别处(如维护页面),但这需要较长时间生效,且对直接通过IP访问的无效。

方法一:通过防火墙关闭(推荐,最灵活安全)

这是最常用和推荐的方法,可以在不影响服务器其他服务的情况下,精确控制访问。

1. 使用系统防火墙(如firewalldufw

CentOS/RHEL/Fedora (使用firewalld)

     # 查看当前放行的服务/端口
     sudo firewall-cmd --list-all
     # 永久移除HTTP和HTTPS服务(端口80和443)
     sudo firewall-cmd --permanent --remove-service=http
     sudo firewall-cmd --permanent --remove-service=https
     # 或直接移除端口
     # sudo firewall-cmd --permanent --remove-port=80/tcp
     # sudo firewall-cmd --permanent --remove-port=443/tcp
     # 重新加载防火墙使配置生效
     sudo firewall-cmd --reload

Ubuntu/Debian (使用ufw)

     # 查看状态
     sudo ufw status
     # 拒绝80和443端口的入站连接
     sudo ufw deny 80/tcp
     sudo ufw deny 443/tcp
     # 如果需要,重新加载(ufw规则立即生效)
     sudo ufw reload

2. 使用云服务商的安全组/防火墙

* 这是最重要的一步!云主机(如阿里云、腾讯云、AWS、华为云)都有安全组网络ACL功能。

操作:登录到云控制台,找到您的云主机实例,进入其安全组配置。

修改规则:找到入方向规则,将允许(Accept)80443端口的规则修改为拒绝(Deny) 或直接删除该条规则。

优点:规则在云端网络边界生效,不消耗主机资源,更加安全高效。

方法二:停止Web服务器服务(直接关闭)

这种方法会停止整个Web服务器软件,该软件托管的所有网站都会无法访问。

1. 对于Nginx

   # 停止Nginx服务
   sudo systemctl stop nginx
   # 禁止开机自启(如果永久关闭)
   # sudo systemctl disable nginx
   # 查看状态
   sudo systemctl status nginx

2. 对于Apache

   # 停止Apache服务(在CentOS/RHEL上服务名可能是httpd)
   sudo systemctl stop apache2    # Ubuntu/Debian
   sudo systemctl stop httpd      # CentOS/RHEL/Fedora
   # 禁止开机自启
   # sudo systemctl disable apache2
   # 查看状态
   sudo systemctl status apache2

重启服务的命令是sudo systemctl start nginx/apache2/httpd

方法三:修改Web服务器配置文件(针对性关闭特定网站)

如果您在同一个Web服务器上托管了多个网站,可以只关闭其中一个。

1. 对于Nginx

* 网站配置文件通常在/etc/nginx/conf.d//etc/nginx/sites-available/ 目录下。

方法A:重命名或移除配置文件

     # 假设网站配置文件是 /etc/nginx/conf.d/mysite.conf
     sudo mv /etc/nginx/conf.d/mysite.conf /etc/nginx/conf.d/mysite.conf.bak

方法B:在配置文件中监听其他端口(如改为监听8080)

编辑配置文件,将listen 80;listen 443 ssl; 行注释或修改。

     # 修改前
     server {
         listen 80;
         server_name www.example.com;
         ...
     }
     # 修改后 - 方法1:注释掉listen行
     server {
         # listen 80;
         server_name www.example.com;
         ...
     }
     # 修改后 - 方法2:改为监听本地端口,外部无法访问
     server {
         listen 127.0.0.1:8080;
         server_name www.example.com;
         ...
     }

重载Nginx配置(不中断服务其他网站):

     sudo nginx -s reload
     # 或
     sudo systemctl reload nginx

2. 对于Apache

* 网站配置文件可能在/etc/apache2/sites-available/ (Ubuntu) 或/etc/httpd/conf.d/ (CentOS)。

禁用网站配置

     # Ubuntu/Debian
     sudo a2dissite your-site-config.conf
     sudo systemctl reload apache2
     # CentOS/RHEL (通常直接删除链接或重命名文件)
     sudo rm /etc/httpd/conf.d/your-site-config.conf
     sudo systemctl reload httpd

方法四:放置“网站维护”页面(优雅关闭)

如果您希望告知用户网站正在维护,可以创建一个维护页面。

1、 在网站根目录(如/var/www/html)创建一个maintenance.html 页面。

2、 修改Nginx/Apache的默认网站或目标网站的配置,将其根目录指向这个维护页面文件,或设置重定向

3、 重载Web服务器配置。

Nginx配置示例(直接返回维护状态码503和一个页面):

server {
    listen 80;
    server_name www.example.com;
    location / {
        # 返回503状态码并显示自定义页面
        return 503;
    }
    error_page 503 /maintenance.html;
    location = /maintenance.html {
        root /usr/share/nginx/html; # 维护页面存放路径
        internal;
    }
}
场景 推荐方法 说明
紧急关闭,立即生效云平台安全组 在控制台操作,最快最彻底,不影响主机内部。
临时维护,稍后恢复系统防火墙停止Web服务sudo systemctl stop nginx/httpdfirewall-cmd --remove-service=http
仅关闭特定网站修改Web服务器配置 重命名站点配置文件并重载服务。
显示友好维护提示放置维护页面 配置Web服务器返回503和自定义HTML页面。
永久关闭网站卸载Web服务器sudo apt remove nginxsudo yum remove httpd

操作前重要提醒:

1、备份:修改任何配置文件前,先备份。

2、权限:使用sudo 或 root 用户执行命令。

3、验证:修改后,务必从外部网络(如你的手机4G网络)访问测试,确认是否已关闭。

4、谨慎操作:如果通过SSH连接到云主机,不要在修改防火墙时错误地封禁了SSH端口(默认22),否则会失去连接,云控制台的“安全组”是更安全的网络层控制方式。

您可以根据自己的具体需求,选择最合适的方法。

文章摘自:https://idc.huochengrm.cn/zj/24824.html

评论