返回 MCP 目录
public公开dns本地运行

sample-cloud-spend-mcp-server

一个通过MCP协议查询AWS云支出的工具,集成Claude模型提供自然语言交互界面。

article

README

🚀 使用Nginx在EC2实例上配置HTTPS反向代理服务器

本项目详细介绍了如何在亚马逊弹性计算云(Amazon EC2)实例上,使用Nginx配置一个基于HTTPS的安全反向代理服务器。通过这种方式,前端客户能够通过安全的HTTPS协议访问后端服务,提升数据传输的安全性。

🚀 快速开始

以下是配置HTTPS反向代理服务器的整体步骤:

  1. 安装Nginx
  2. 获取EC2实例的公共主机名
  3. 创建Nginx配置文件
  4. 启动Nginx服务
  5. 通过HTTPS访问反向代理服务器

✨ 主要特性

  • 安全性:通过HTTPS协议保障数据传输安全。
  • 反向代理:将前端请求转发到后端服务。

📦 安装指南

安装Nginx

  1. 打开终端,运行以下命令安装Nginx:
    sudo apt-get install nginx
    
  2. 验证Nginx是否正确安装:
    sudo nginx -t
    
  3. 重新加载Nginx配置以应用更改:
    sudo systemctl reload nginx
    

获取EC2实例的公共主机名

使用curl命令获取实例的公开DNS名称:

TOKEN=$(curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600") && curl -H "X-aws-ec2-metadata-token: $TOKEN" -s http://169.254.169.254/latest/meta-data/public-hostname

💻 使用示例

创建Nginx配置文件

基础用法

  1. 打开终端,运行以下命令创建新的Nginx配置文件:
    sudo nano /etc/nginx/conf.d/ec2.conf
    
  2. 将以下内容粘贴到文件中(记得替换占位符):
    server {
        listen 80;
        server_name YOUR_EC2_HOSTNAME;
    
        # 重定向HTTP到HTTPS
        return 301 https://$host$request_uri;
    }
    
    server {
        listen 443 ssl;
        server_name YOUR_EC2_HOSTNAME;
    
        # SSL证书和密钥路径
        ssl_certificate     /etc/ssl/certs/cert.pem;
        ssl_certificate_key /etc/ssl/privatekey/privkey.pem; 
    
        # 设置SSL协议和加密套件
        ssl_protocols       TLSv1.2 TLSv1.3;
        ssl_ciphers         HIGH:!aNULL:!MD5;
    
        location / {
            # 反向代理到本地服务(例如,端口8000)
            proxy_pass http://127.0.0.1:8000;
            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 https;
        }
    }
    
  3. 保存并退出编辑器。

启动Nginx服务

基础用法

  1. 测试Nginx配置是否正确:
    sudo nginx -t
    
  2. 如果配置无误,重新加载Nginx以应用更改:
    sudo systemctl reload nginx
    
  3. 确保Nginx服务正在运行:
    sudo systemctl status nginx
    

通过HTTPS访问反向代理服务器

基础用法

  1. 更新所有MCP客户端的配置,使用新的HTTPS URL。
  2. 使用mcp_sse_client.py连接反向代理服务器:
    python mcp_sse_client.py --url https://YOUR_EC2_HOSTNAME:443
    
  3. 使用LangGraph Agent连接反向代理服务器:
    export MCP_SERVER_URL=https://YOUR_EC2_HOSTNAME:443
    

📚 详细文档

安装Nginx

  1. 打开终端,运行安装命令sudo apt-get install nginx,该命令会从软件源下载并安装Nginx。
  2. 运行sudo nginx -t验证Nginx配置是否正确,若输出显示配置无误,则可进行下一步。
  3. 运行sudo systemctl reload nginx重新加载Nginx配置,使更改生效。

获取EC2实例的公共主机名

使用curl命令获取实例的公开DNS名称,该名称用于后续配置中的server_name

创建Nginx配置文件

  1. 运行sudo nano /etc/nginx/conf.d/ec2.conf创建新的Nginx配置文件。
  2. 在文件中配置SSL证书路径、密钥路径、SSL协议和加密套件,以及反向代理规则。
  3. 保存并退出编辑器。

启动Nginx服务

  1. 运行sudo nginx -t测试Nginx配置是否正确。
  2. 若配置无误,运行sudo systemctl reload nginx重新加载Nginx以应用更改。
  3. 运行sudo systemctl status nginx确保Nginx服务正在运行。

通过HTTPS访问反向代理服务器

  1. 更新所有MCP客户端的配置,使用新的HTTPS URL。
  2. 使用mcp_sse_client.py连接反向代理服务器,指定--url参数为新的HTTPS URL。
  3. 使用LangGraph Agent连接反向代理服务器,通过export MCP_SERVER_URL设置服务器URL。

🔧 技术细节

本项目使用Nginx作为反向代理服务器,通过配置SSL证书和密钥,实现HTTPS协议的安全传输。Nginx的反向代理功能将前端请求转发到本地8000端口的服务,从而实现前后端的分离。同时,通过定期更新SSL证书和监控Nginx服务状态,保障系统的安全性和稳定性。

📄 注意事项

⚠️ 重要提示

  • 确保SSL证书和密钥路径正确无误,否则会导致HTTPS连接失败。
  • 定期更新SSL证书以保障安全性,避免证书过期影响服务。
  • 监控Nginx服务状态,确保其正常运行,可通过sudo systemctl status nginx查看服务状态。

通过以上步骤,您可以在EC2实例上成功配置一个安全的HTTPS反向代理服务器。

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端