Ubuntu 20.04内部服务器路由配置:多应用路径访问实现求助
多应用路径映射入门配置指导(Ubuntu 20.04)
核心思路是用反向代理服务器(推荐Nginx,入门友好)统一接收80端口请求,根据路径转发到不同应用,实现单IP多路径访问。以下是分步操作:
1. 安装并启动Nginx
先部署Nginx作为反向代理入口:
sudo apt update && sudo apt install nginx sudo systemctl start nginx sudo systemctl enable nginx
验证Nginx状态:在浏览器访问服务器IP,能看到Nginx默认页面即说明正常。
2. 调整GitLab配置适配子路径
GitLab默认监听80端口,需修改配置让它在/git路径下运行,同时避免和主Nginx端口冲突:
- 编辑GitLab主配置文件:
sudo nano /etc/gitlab/gitlab.rb - 修改以下参数:
# 设置外部访问地址为带/git子路径的形式 external_url 'http://你的服务器IP/git' # 让GitLab内置Nginx监听8080端口,不和主Nginx抢占80端口 nginx['listen_port'] = 8080 - 保存退出后,重新配置并重启GitLab:
sudo gitlab-ctl reconfigure sudo gitlab-ctl restart
测试GitLab内部访问:访问http://localhost:8080/git,确认能正常打开GitLab页面。
3. 配置Node.js后端转发规则
假设你的Node.js后端运行在localhost:3000端口:
- 如果后端代码本身处理
/api路径请求,直接转发即可;如果后端仅处理根路径请求,需用Nginx去掉/api前缀(后续Nginx配置会加注释说明)。
4. 配置Nginx反向代理规则
编辑Nginx默认站点配置:
sudo nano /etc/nginx/sites-available/default
替换为以下内容(替换你的服务器IP为实际IP):
server { listen 80; server_name 你的服务器IP; # 转发/git路径请求到GitLab location /git { proxy_pass http://localhost:8080/git; # 传递必要请求头,保证GitLab正确识别请求来源 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } # 转发/api路径请求到Node.js后端 location /api { proxy_pass http://localhost:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # 如果Node.js后端不需要/api前缀,解开下方注释(自动将/api/xxx转换为/xxx) # rewrite ^/api/(.*)$ /$1 break; } }
- 验证配置合法性:
sudo nginx -t - 验证通过后重启Nginx:
sudo systemctl restart nginx
5. 开放防火墙端口
确保服务器80端口对外开放(若之前开放过GitLab的80/443端口,可关闭,因为所有请求将通过Nginx的80端口转发):
sudo ufw allow 80/tcp # 可选:关闭旧的GitLab端口 # sudo ufw delete allow 80/tcp # sudo ufw delete allow 443/tcp
测试访问
现在可以在浏览器验证:
http://你的服务器IP/git:正常打开GitLab页面http://你的服务器IP/api:正常访问Node.js后端接口
内容的提问来源于stack exchange,提问作者timo.js
相关产品推荐
相关产品推荐

