在Amazon EC2上启动http-server

Sli*_*Jim 6 python amazon-ec2 amazon-web-services

我正在尝试在Amazon EC2实例上设置和访问简单的Python http服务器.服务器在localhost:80下本地工作,但我不能让它在EC2实例上工作.

我将弹性IP连接到实例,它至少可以访问该IP上的ssh.

我认为问题是我正在为HTTPServer错误地设置server_address: Python HTTPServer文档 因为我真的没有线索,所以在家里我配置路由器将HTTP请求转发到计算机的本地IP,192.168.1. XX

我认为它可能是一个安全组问题,所以我添加了入口HTTP和源0.0.0.0/0(我认为应该允许所有传入的IP)并设置端口80而无需任何更改选项.

另外,我认为在端口80上运行sudo下的服务器脚本存在潜在的安全风险.有没有办法在8080而不是80的另一个端口下转发请求?

oDD*_*ooL 3

从安全角度来看,在常规 http 服务器后面运行脚本可能会更好。

以下是NginX的配置,可以帮助您入门(将此文件放入/etc/nginx/conf.d/):

upstream myscript  {
  server localhost:8080;
}

server {
    server_name _;
    listen 80;
    location = / {
        proxy_pass  http://myscript;
    }
}
Run Code Online (Sandbox Code Playgroud)

在此设置中,您在端口 8080 上运行脚本(用于在 python 脚本中server_address = ('localhost', 8080)配置)。HTTPServer

因此,当查询到达端口 80 上的 nginx 时,它会将其转发到脚本负责的本地主机端口 8080。