在端口80上访问aws ec2中的wordpress。无法连接到端口80

时间:2018-05-13 10:42:44

标签: wordpress amazon-web-services docker amazon-ec2

我在aws ec2(亚马逊Linux AMI 2018.03.0)上托管一个wordpress网站。

我使用docker-compose来启动网站,数据库和phpmyadmin。

version: '3.3'

volumes:
  data:
networks:
  back:

services:

  db:
    image: mysql:5.7
    volumes:
      - data:/var/lib/mysql
    environment:
       MYSQL_ROOT_PASSWORD: test
       MYSQL_DATABASE: wordpress
       MYSQL_USER: test
       MYSQL_PASSWORD: test
    networks:
      - back

  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    ports:
      - 80:80
      - 443:443
    environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
    volumes:
      - ./html:/var/www/html
    container_name: site
    networks:
      - back

  phpmyadmin:
    depends_on:
      - db
    image: phpmyadmin/phpmyadmin
    restart: always
    ports:
      - 3001:80
    environment:
      PMA_HOST: db
      MYSQL_USER: test
      MYSQL_PASSWORD: test
      MYSQL_ROOT_PASSWORD: test
    networks:
      - back

如您所见,我将容器中的端口80映射到主机的端口80。这应该使我的IPv4公共IP上的网站可用。我想我的安全组中已经正确配置了入站访问。

security groups

我无法在端口80上访问我的网站。当我更改yml文件以将我的容器的端口80映射到我的主机上的8080时,它确实有效。 如何在80端口上提供网站?

我以root身份运行docker compose: sudo which docker-compose up -d 该网站仍无法访问。

我从/ usr / local / bin中删除了docker-compose并将其安装在/ usr / bin中。 然后我跑了sudo docker-compose up -d 该网站仍无法访问。

我仍然认为它确实与以root身份运行它有关。当我在1024端口上运行它时,我可以找到该网站。我在1024以下的端口上运行它时看不到它。

我应该在哪个目录中安装docker-compose以root身份运行它?

我确信docker容器正在出现。我可以看到这是docker ps的输出: enter image description here

1 个答案:

答案 0 :(得分:0)

您可能没有docker compose作为root投放。基本上1024以下的端口是特权端口,因此您需要是root用户才能运行侦听这些端口的进程。 使用sudo运行docker compose,您应该能够使用端口80和主机公共IPV4地址访问该站点。