1

此配置在没有 docker 的情况下进行了测试。SSL 上的站点在没有错误的情况下启动。现在,当我想在 docker 中运行此服务器配置时,我在安装过程中没有收到任何错误,但服务器根本没有启动。

nginx.docker文件

    FROM nginx:stable-alpine

RUN mkdir -p /var/www/html
WORKDIR /var/www/html
RUN addgroup -g 1000 laravel && adduser -G laravel -g laravel -s /bin/sh -D laravel

RUN chown laravel:laravel /var/www/html

COPY ./nginx/ssl/mysite.ru/mysite_ru.crt /etc/nginx/ssl/mysite.ru/mysite_ru.crt
COPY ./nginx/ssl/mysite.ru/mysite_ru.key /etc/nginx/ssl/mysite.ru/mysite_ru.key

RUN apk update \
&& ln -sf ./nginx/ssl/mysite.ru /etc/nginx/ssl/mysite.ru

ADD ./nginx/nginx.conf /etc/nginx/nginx.conf
ADD ./nginx/default.conf /etc/nginx/conf.d/default.conf

./nginx/ssl/mysite_com文件夹包含工作文件:mysite_com. crt并且mysite_com.key 此文件在没有 docker 的情况下检查

码头工人-compose.yml

services:
  site:
    build:
      context: .
      dockerfile: nginx.dockerfile
    container_name: nginx
    ports:
      - 80:80
      - 443:443
    volumes:
      - ./src:/var/www/html:delegated
      - ./nginx/ssl:/etc/nginx/ssl
    depends_on:
      - php
      - mysql
      - postgres
    networks:
      - laravel

默认.conf

server {
    listen 443 ssl;
    server_name  mysite.ru;
    ssl_certificate /etc/nginx/ssl/mysite.ru/mysite_ru.crt;
    ssl_certificate_key /etc/nginx/ssl/mysite.ru/mysite_ru.key;
    index index.php index.html;
    root /var/www/html/public;

        location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass php:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
}

告诉我,错误是什么?我在哪里可以查看 docker 中的 nginx 日志?

4

1 回答 1

0

您似乎尚未将 SSL 证书和密钥文件添加或复制到您的 nginx 映像中。

在之前添加COPY关键字RUN apk update ...,然后nginx在最后重新启动,这样您的Dockerfile外观就会像这样,我认为它应该可以解决您的问题:

FROM nginx:stable-alpine

RUN mkdir -p /var/www/html
WORKDIR /var/www/html
RUN addgroup -g 1000 laravel && adduser -G laravel -g laravel -s /bin/sh -D laravel

RUN chown laravel:laravel /var/www/html

COPY mysite_com.crt /etc/nginx/ssl/mysite.com/
COPY mysite_com.key /etc/nginx/ssl/mysite.com/

RUN apk update \
&& ln -sf ./nginx/ssl/mysite_com /etc/nginx/ssl

ADD ./nginx/nginx.conf /etc/nginx/nginx.conf
ADD ./nginx/default.conf /etc/nginx/conf.d/default.conf
于 2021-03-06T12:15:46.680 回答