目前我的 docker 容器正在将 nginx 访问日志打印到 /dev/stdout。如何在我的 docker 容器内创建一个卷来存储访问日志?
我的 Dockerfile:
FROM python:3.7
ENV APP_ROOT /src
ENV CONFIG_ROOT /config
RUN apt-get update
RUN apt-get install -y apt-utils
RUN apt-get -y install unixodbc-dev
RUN apt-get -y install default-libmysqlclient-dev
RUN mkdir ${CONFIG_ROOT}
COPY /app/requirements.txt ${CONFIG_ROOT}/requirements.txt
RUN pip install -r ${CONFIG_ROOT}/requirements.txt
RUN mkdir ${APP_ROOT}
WORKDIR ${APP_ROOT}
ADD /app/ ${APP_ROOT}
Run Code Online (Sandbox Code Playgroud)
我的 docker-compose.yml:
version: "3"
services:
app:
build: .
container_name: django-gunicorn
restart: always
env_file:
- django.env
ports:
- "8000:8000"
command:
"gunicorn --workers=2 --bind=0.0.0.0:8000 mysite.wsgi:application"
nginx:
image: …Run Code Online (Sandbox Code Playgroud) 我遇到了一个问题,我试图为单个位置块中的每个单独的 URL 设置速率限制,例如“位置/{}”
limit_req_zone $request_uri zone=one:10m rate=6r/m;
location / {
proxy_pass http://app:8000;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
limit_req zone=one;
}
Run Code Online (Sandbox Code Playgroud)
最后,url "/example/1" 每秒可以发送 5 个请求,而 "/example/2" 每秒可以发送另外 5 个请求。