统信uos上nginx多站点部署有四种方法:一、通过/etc/nginx/sites-enabled/软链接独立配置文件;二、在/etc/nginx/conf.d/下直接放置.conf文件;三、按端口区分,各site监听不同端口;四、按路径前缀,用location指令在同一域名下分发请求。

如果您已在统信UOS上成功安装Nginx,但希望在同一台服务器上托管多个独立域名或子路径的网站,则需配置Nginx虚拟主机(Server Blocks)。以下是实现多站点部署的具体方法:
一、基于/etc/nginx/sites-enabled/的多站点配置
该方式利用Nginx默认启用的sites-enabled机制,通过为每个站点创建独立配置文件并软链接至启用目录,实现逻辑隔离与灵活管理。所有站点共享同一Nginx进程,互不影响。
1、为第一个站点创建专用配置文件:sudo nano /etc/nginx/sites-available/site1.example.com
2、在文件中写入标准server块,指定监听端口、域名与根目录:listen 80; server_name site1.example.com; root /var/www/site1; index index.html;
3、为第二个站点创建另一配置文件:sudo nano /etc/nginx/sites-available/site2.example.com
4、写入对应配置,确保server_name与root路径不重复:listen 80; server_name site2.example.com; root /var/www/site2; index index.html;
5、将配置文件符号链接至启用目录:sudo ln -sf /etc/nginx/sites-available/site1.example.com /etc/nginx/sites-enabled/
6、同样链接第二个站点:sudo ln -sf /etc/nginx/sites-available/site2.example.com /etc/nginx/sites-enabled/
7、测试配置语法是否正确:sudo nginx -t
8、重载服务使新站点生效:sudo systemctl reload nginx
二、基于/etc/nginx/conf.d/的多站点配置
此方式更符合统信UOS常见实践,无需修改默认启用逻辑,直接在conf.d目录下放置以.conf结尾的独立站点文件,Nginx启动时自动加载全部匹配文件,便于批量维护与版本控制。
1、创建第一个站点配置:sudo nano /etc/nginx/conf.d/site1.conf
2、填入完整server定义,含明确的server_name和location指令:server { listen 80; server_name site1.example.com; root /var/www/site1; location / { try_files $uri $uri/ =404; } }
3、创建第二个站点配置:sudo nano /etc/nginx/conf.d/site2.conf
4、使用不同域名与物理路径,避免root冲突:server { listen 80; server_name site2.example.com; root /var/www/site2; location / { try_files $uri $uri/ =404; } }
5、确认目录权限允许Nginx读取站点内容:sudo chown -R www-data:www-data /var/www/site1 /var/www/site2
6、验证配置无语法错误:sudo nginx -t
7、重新加载配置而不中断连接:sudo systemctl reload nginx
三、基于端口区分的多站点配置
当多个站点无法使用不同域名(如内网测试环境),可通过绑定不同监听端口实现隔离。每个server块声明唯一端口号,客户端通过IP加端口访问,适用于开发调试或非标准部署场景。
1、编辑主配置或新建conf文件:sudo nano /etc/nginx/conf.d/port-based.conf
2、定义第一个站点监听8080端口:server { listen 8080; server_name _; root /var/www/app1; index index.html; }
3、定义第二个站点监听8081端口:server { listen 8081; server_name _; root /var/www/app2; index index.html; }
4、确保防火墙放行新增端口:sudo ufw allow 8080 && sudo ufw allow 8081
5、检查端口监听状态:sudo ss -tlnp | grep ':8080\|:8081'
6、执行配置测试:sudo nginx -t
7、重载服务应用变更:sudo systemctl reload nginx
四、基于路径前缀的多站点配置
该方式将多个应用挂载在同一域名下的不同URI路径下(如/example1/、/example2/),由单个server块通过多个location指令分发请求,适合微前端或内部工具聚合场景,不依赖DNS解析能力。
1、编辑默认站点或新建配置:sudo nano /etc/nginx/sites-enabled/default
2、保留原有server_name和listen,添加第一个路径映射:location /app1/ { alias /var/www/app1/; index index.html; }
3、添加第二个路径映射,注意末尾斜杠与alias路径一致性:location /app2/ { alias /var/www/app2/; index index.html; }
4、启用try_files防止路径穿透:location /app1/ { alias /var/www/app1/; try_files $uri $uri/ =404; }
5、同理配置第二路径:location /app2/ { alias /var/www/app2/; try_files $uri $uri/ =404; }
6、测试配置有效性:sudo nginx -t
7、重载Nginx服务:sudo systemctl reload nginx











