【问题标题】:NGINX we server is running, but requires more configurations. what can i do?我们服务器正在运行 NGINX,但需要更多配置。我能做些什么?
【发布时间】:2020-10-14 21:59:08
【问题描述】:

我只是在玩 docker,并尝试使用 docker 在本地启动一个基本的 html 文件。服务器已启动并正在运行,但未在网站上显示 html 文本。显示html文本需要什么配置?

我得到的错误:

“如果你看到这个页面,说明nginx web服务器已经安装成功并且可以工作了。需要进一步配置。”

这是我的代码:

index.html:

<h1>Hello world</h1>
<p1>docker</p1>

dockerfile:

FROM nginx
COPY C:\Users\X12X\Desktop\docker test

docker-compose.yml:

version: '2'
services:
    app:
        shm_size: 128m
        build: .
        image: nginx
        volumes:
            - C:\Users\X12X\Desktop\docker test
        ports:
            - "8080:80"

我对 docker 完全陌生,我不确定我需要做什么样的配置才能在 localhost/8080 网页上显示 HTML 文本

【问题讨论】:

    标签: html docker nginx yaml localhost


    【解决方案1】:

    您需要server block 将您的 NGINX 指向 /test 文件夹,或者将您的 index.html 文件挂载到默认位置: /usr/share/nginx/html

    1. 使用默认的 NGINX 位置 /usr/share/nginx/html,你只需要这个 docker_compose.yml(你不需要 Dockerfile): p>

      version: '2'
      services:
        app:
          image: nginx
          volumes:
            - C:\Users\X12X\Desktop\docker:/usr/share/nginx/html
          ports:
            - "8080:80"
      
    2. 添加服务器块:

      1. 你需要覆盖默认的一个服务器块配置文件,在/etc/nginx/conf.d/default.conf

        server {
          listen 80 default_server;
          server_name _;
          index index.html;
        
          server_name_in_redirect off;
        
          root  /test;
        } 
        
      2. 你需要把这个配置文件挂载到配置文件夹/etc/nginx/conf.d/以及index.html

        version: '2'
        services:
          app:
            image: nginx
            volumes:
              - C:\Users\X12X\Desktop\docker:test
              - C:\Users\X12X\Desktop\docker\default.conf:/etc/nginx/conf.d/default.conf 
            ports:
              - "8080:80"
        

    【讨论】:

    • 使用上面的代码之后。它带我到一个显示“402 FORBIDDEN”的网页,下面有“nginx/1.19.0”。
    • 用哪一种,解决方法1对2? (在重新测试要使用的正确文件后,我刚刚更新了第二个)
    【解决方案2】:

    Dockerfile:

    FROM nginx
    COPY index.html /usr/share/nginx/html
    

    Docker 编写文件:

    version: '2'
    services:
        app:
            build:
              context: .
              dockerfile: Dockerfile
            ports:
                - "8080:80"
    

    构建上下文在这里非常重要。在 dockerfile 的 COPY 命令中,源路径必须在构建上下文中。

    这是构建上下文目录的内容:

    还记得在分离模式下运行 docker-compose (docker-compose up -d)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-07
      • 2012-04-13
      • 1970-01-01
      • 2021-04-22
      • 1970-01-01
      • 1970-01-01
      • 2018-03-08
      • 1970-01-01
      相关资源
      最近更新 更多