在阿里云CentOS 7服务器上通过不同端口部署多个Web站点,是一种经济高效且灵活的资源利用方式,尤其适用于测试、轻量级应用或内部服务。本文将详细介绍从环境准备、Web服务配置到站点部署的完整流程。
一、环境准备与基础配置
- 服务器准备:确保已购买并启动一台阿里云ECS实例,操作系统为CentOS 7,并通过SSH成功登录。
- 安全组配置:登录阿里云控制台,进入ECS实例的安全组设置。添加入方向规则,开放计划使用的端口(如8080、8081、8082等),协议类型为HTTP(80) 或自定义TCP(建议同时开放对应端口),授权对象为
0.0.0.0/0(或在生产环境中限定IP范围)。这是关键一步,否则外部无法访问。
- 系统更新与防火墙:
- 更新系统:
sudo yum update -y
- 若使用firewalld防火墙,开放端口并重载:
`bash
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --permanent --add-port=8081/tcp
# 添加更多端口...
sudo firewall-cmd --reload
`
- 若使用iptables,需相应配置。
4. 安装Web服务器:这里以Nginx为例(也可选用Apache)。
`bash
sudo yum install epel-release -y
sudo yum install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx
`
二、规划与创建站点目录及测试页面
假设我们要部署两个站点:
- 站点A:使用端口8080,文档根目录
/var/www/siteA - 站点B:使用端口8081,文档根目录
/var/www/siteB
创建目录和测试页面:`bash
sudo mkdir -p /var/www/siteA
sudo mkdir -p /var/www/siteB
为站点A创建测试首页
sudo bash -c 'echo "Welcome to Site A (Port 8080)
" > /var/www/siteA/index.html'# 为站点B创建测试首页 sudo bash -c 'echo "
Welcome to Site B (Port 8081)
" > /var/www/siteB/index.html'设置目录权限(确保Nginx用户可读)
sudo chown -R nginx:nginx /var/www/siteA
sudo chown -R nginx:nginx /var/www/siteB
sudo chmod -R 755 /var/www`
三、配置Nginx多端口站点
Nginx的主配置文件为 /etc/nginx/nginx.conf。通常,我们会在 /etc/nginx/conf.d/ 目录下为每个站点创建独立的配置文件,这样更易于管理。
1. 为站点A创建配置文件:
`bash
sudo vi /etc/nginx/conf.d/siteA.conf
`
输入以下内容:
`nginx
server {
listen 8080; # 监听8080端口
servername ; # 可以是域名,若无域名可用下划线或服务器IP
location / {
root /var/www/siteA;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
`
2. 为站点B创建配置文件:
`bash
sudo vi /etc/nginx/conf.d/siteB.conf
`
输入以下内容(将端口和根目录改为8081和siteB):
`nginx
server {
listen 8081;
servername ;
location / {
root /var/www/siteB;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
`
3. 检查配置并重启Nginx:
`bash
sudo nginx -t # 测试配置文件语法
sudo systemctl restart nginx # 重启Nginx使配置生效
`
四、测试访问
打开浏览器,分别访问:
http://<你的服务器公网IP>:8080http://<你的服务器公网IP>:8081
如果看到之前创建的“Welcome to Site A/B”页面,说明部署成功。
五、进阶配置与注意事项
- 域名绑定(可选):如果有域名,可以将域名解析到服务器IP,并在配置文件中将
server_name改为对应的域名(如siteA.yourdomain.com)。即使使用不同端口,也建议配置,便于标识和管理。
- 服务管理:
- 查看Nginx状态:
sudo systemctl status nginx
- 重新加载配置(不中断服务):
sudo systemctl reload nginx
3. 日志查看:每个站点的访问日志和错误日志默认可能混在一起。可以在每个server配置中自定义日志路径,例如:
`nginx
accesslog /var/log/nginx/siteAaccess.log;
errorlog /var/log/nginx/siteAerror.log;
`
- 部署实际应用:将您的PHP、Python、Node.js或静态网站文件放入对应的站点目录(如
/var/www/siteA),并确保Nginx配置正确指向应用入口文件。对于动态应用,可能还需要配置反向代理(如将请求转发到本地的3000、5000等应用监听端口)。
- 安全性建议:
- 非必要不使用root权限运行服务。
- 定期更新系统和软件包。
- 考虑使用HTTPS(SSL/TLS),为每个站点申请证书并配置监听443端口(或自定义端口如8443)。
- 在安全组中严格控制端口开放范围。
通过以上步骤,您已经成功在阿里云CentOS 7服务器上使用不同端口部署了多个Web站点。此方法简单直接,非常适合快速搭建测试环境或运行多个轻量级服务。随着站点数量增加或需求复杂化,您可以进一步探索基于域名的虚拟主机、负载均衡或容器化部署等更高级的方案。