首页 文章

在Amazon EC2上启动http-server

提问于
浏览
6

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

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

我认为问题是我正在为HTTPServer错误地设置server_address:Python HTTPServer documentation因为我真的不知道't have a clue, at home I configured the router to forward HTTP requests to the computer'的本地IP,192.168.1.xx

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

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

2 回答

  • 2

    对于安全组,您可以创建允许端口8080的规则(执行“Custome TCP规则”,然后将8080设置为端口范围) .

    听起来您的HTTPServer可能绑定到环回 . 我将地址设置为0.0.0.0(所有接口),将端口设置为8080,并在安全组上打开8080 .

  • 3

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

    这是NginX的一个配置,它应该让你入门(把这个文件放在 /etc/nginx/conf.d/ 中):

    upstream myscript  {
      server localhost:8080;
    }
    
    server {
        server_name _;
        listen 80;
        location = / {
            proxy_pass  http://myscript;
        }
    }
    

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

    因此,当查询在端口80上访问nginx时,它会将其转发到您的脚本负责的localhost端口8080 .

相关问题