【Nginx】安装部署

背景:在一台服务上同时要部署 nginx web站点 app的API服务呢,该如何做?如果有两台服务器又该如何做?本文实际操作并进行记录。


如果第一台服务器需要同时部署 Nginx Web 站点App 的 API 服务,可以通过 Nginx 的配置将不同的请求路径或域名分别转发到 Web 站点和 API 服务。以下是具体步骤:


1. 安装 Nginx 和 API 服务

确保在第一台服务器上安装 Nginx 和 API 服务。

安装 Nginx

sudo apt update
sudo apt install nginx

安装 API 服务

根据你的 API 服务需求,安装相应的环境(如 Node.js、Python、Java 等),并部署 API 服务。


2. 部署 Web 站点

将你的 Web 站点文件放到服务器上,例如 /var/www/html 目录。


3. 配置 Nginx

通过 Nginx 配置,将 Web 站点和 API 服务的请求分开处理。

编辑 Nginx 配置文件

sudo nano /etc/nginx/sites-available/default

示例配置

以下是一个示例配置,假设:

  • Web 站点根路径为 /var/www/html
  • API 服务运行在 127.0.0.1:3000
server {
    listen 80;
    server_name your_domain.com;

    # 配置 Web 站点
    location / {
        root /var/www/html;  # Web 站点的根目录
        index index.html index.htm;
    }

    # 配置 API 服务
    location /api/ {
        proxy_pass http://127.0.0.1:3000/;  # 将 /api/ 开头的请求转发到 API 服务
        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;
    }
}

重启 Nginx

sudo systemctl restart nginx

4. 部署 API 服务

确保 API 服务已启动并监听指定端口(如 3000)。


5. 测试

  • 访问 http://your_domain.com,应该看到 Web 站点。
  • 访问 http://your_domain.com/api/,应该看到 API 服务的响应。

6. 使用不同域名(可选)

如果你希望通过不同的域名访问 Web 站点和 API 服务,可以配置多个 server 块。

示例配置

# Web 站点配置
server {
    listen 80;
    server_name web.your_domain.com;

    location / {
        root /var/www/html;
        index index.html index.htm;
    }
}

# API 服务配置
server {
    listen 80;
    server_name api.your_domain.com;

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

重启 Nginx

sudo systemctl restart nginx

测试

  • 访问 http://web.your_domain.com,应该看到 Web 站点。
  • 访问 http://api.your_domain.com,应该看到 API 服务的响应。

7. 后期扩展

当增加第二台服务器时,可以更新 Nginx 配置,将 API 服务的请求转发到第二台服务器。

更新 Nginx 配置

upstream api_servers {
    server 127.0.0.1:3000;  # 第一台服务器的 API 服务
    server 192.168.1.2:3000;  # 第二台服务器的 API 服务
}

server {
    listen 80;
    server_name api.your_domain.com;

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

重启 Nginx

sudo systemctl restart nginx

8. 其他注意事项

  • 静态文件缓存:如果 Web 站点有大量静态文件,可以配置 Nginx 缓存。
  • SSL/TLS:使用 Let's Encrypt 为 Web 站点和 API 服务配置 HTTPS。
  • 防火墙:确保防火墙允许 HTTP/HTTPS 流量。

通过以上步骤,你可以在第一台服务器上同时部署 Nginx Web 站点和 API 服务,并支持后期扩展。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容