首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

nginx部署多个项目域名访问

基础概念

Nginx 是一个高性能的 HTTP 和反向代理服务器,也用作邮件代理服务器。它能够通过配置文件实现多个项目的部署,并通过不同的域名进行访问。

相关优势

  1. 高性能:Nginx 能够处理高并发连接,具有优秀的性能表现。
  2. 灵活配置:通过简单的配置文件,可以实现复杂的代理、负载均衡等功能。
  3. 安全性:Nginx 提供了多种安全机制,如防止 DDoS 攻击、SSL/TLS 加密等。
  4. 易于管理:Nginx 的配置文件结构清晰,易于管理和维护。

类型

  • 反向代理:将客户端请求转发到后端服务器,并将响应返回给客户端。
  • 负载均衡:将客户端请求分发到多个后端服务器,以实现负载均衡。
  • 静态文件服务器:直接提供静态文件服务。

应用场景

  • 多域名部署:通过不同的域名访问不同的项目。
  • API 网关:统一管理和路由 API 请求。
  • 静态资源服务:提供图片、CSS、JS 等静态文件服务。

配置示例

假设我们有两个项目:project1project2,分别通过 project1.example.comproject2.example.com 访问。

1. 安装 Nginx

代码语言:txt
复制
sudo apt update
sudo apt install nginx

2. 配置 Nginx

编辑 Nginx 配置文件 /etc/nginx/sites-available/default,添加以下内容:

代码语言:txt
复制
server {
    listen 80;
    server_name project1.example.com;

    location / {
        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;
    }
}

server {
    listen 80;
    server_name project2.example.com;

    location / {
        proxy_pass http://localhost:4000;
        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;
    }
}

3. 启动项目

确保 project1project2 分别在端口 30004000 上运行。

代码语言:txt
复制
# 启动 project1
cd /path/to/project1
npm start

# 启动 project2
cd /path/to/project2
npm start

4. 重启 Nginx

代码语言:txt
复制
sudo systemctl restart nginx

常见问题及解决方法

1. 域名解析问题

问题:访问域名时提示 域名无法解析

原因:DNS 配置不正确或未生效。

解决方法

  • 确保域名已正确解析到服务器 IP。
  • 等待 DNS 缓存生效(通常为几分钟到几小时)。

2. Nginx 配置错误

问题:访问域名时提示 502 Bad Gateway

原因:Nginx 配置错误或后端服务未启动。

解决方法

  • 检查 Nginx 配置文件语法是否正确:
  • 检查 Nginx 配置文件语法是否正确:
  • 确保后端服务已启动并监听在指定端口。

3. SSL/TLS 配置

问题:需要使用 HTTPS 访问网站。

解决方法

  • 获取 SSL 证书(如 Let's Encrypt)。
  • 配置 Nginx 支持 HTTPS:
  • 配置 Nginx 支持 HTTPS:

参考链接

通过以上配置和解决方法,你可以成功部署多个项目并通过不同域名进行访问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券