麒麟os上nginx多站点部署有三种互斥方法:一、基于域名(推荐),通过server_name区分,共用80/443端口;二、基于端口,监听不同端口如8080,适用于测试;三、基于ip,需服务器配置多个ip,各站点绑定唯一ip。

如果您已在麒麟OS上成功安装Nginx,但需在同一台服务器上托管多个网站(如example1.com和example2.com),则需配置Nginx虚拟主机(Virtual Host)。以下是实现多站点部署的三种互斥且可独立生效的方法:
一、基于域名的多站点配置(推荐)
该方式通过server_name指令区分不同域名请求,所有站点共用80/443端口,无需额外IP或端口资源,符合生产环境主流实践。
1、创建独立站点根目录:
sudo mkdir -p /var/www/example1.com/html /var/www/example2.com/html
2、为各站点写入测试页面:
echo "
Welcome to example1.com
" | sudo tee /var/www/example1.com/html/index.htmlecho "
Welcome to example2.com
" | sudo tee /var/www/example2.com/html/index.html3、为每个站点创建独立配置文件:
sudo nano /etc/nginx/conf.d/example1.com.conf
4、在example1.com.conf中填入以下内容:
server {
listen 80;
server_name example1.com;
root /var/www/example1.com/html;
index index.html;
}
5、同理创建example2.com.conf,其中server_name设为example2.com,root指向对应路径
6、测试配置语法并重载服务:
sudo nginx -t && sudo systemctl reload nginx
二、基于端口的多站点配置
当无法配置DNS或测试阶段需快速验证时,可通过监听不同端口实现隔离,各站点通过IP:端口访问,不依赖域名解析。
1、编辑主配置文件:
sudo nano /etc/nginx/nginx.conf
2、在http块内添加第二个server块:
server {
listen 8080;
server_name localhost;
root /var/www/port8080;
index index.html;
}
3、创建对应目录并写入页面:
sudo mkdir -p /var/www/port8080
echo "
Served on port 8080
" | sudo tee /var/www/port8080/index.html4、开放防火墙端口(若启用firewalld):
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reload
5、验证配置并重载:
sudo nginx -t && sudo systemctl reload nginx
三、基于IP地址的多站点配置
适用于服务器拥有多个公网或内网IP地址的场景,每个站点绑定唯一IP,请求路由由网络层完成,Nginx仅按IP匹配server块。
1、确认系统已配置多IP:
ip addr show | grep "inet " | grep -v "127.0.0.1"
2、为每个IP创建独立server块:
server {
listen 192.168.3.201:80;
server_name _;
root /var/www/ip201;
index index.html;
}
3、另建一个server块,listen设为192.168.3.202:80,root指向/var/www/ip202
4、创建对应目录并写入测试页:
sudo mkdir -p /var/www/ip201 /var/www/ip202
echo "IP 201 Site" | sudo tee /var/www/ip201/index.html
echo "IP 202 Site" | sudo tee /var/www/ip202/index.html
5、执行语法检查与重载:
sudo nginx -t && sudo systemctl reload nginx










