STUNUM

面有萌色,胸有丘壑。心有猛虎,细嗅蔷薇。

嗨,我是王鑫 (@stunum),一名 Python 开发者。


Python web开发,后端以Django框架为主,前端使用Vue.js...

docker之nginx

安装 nginx

docker pull nginx

docker 中 nginx 的文件位置

  • 日志文件 /var/log/nginx
  • 配置文件 /etc/nginx/conf.d
  • 项目文件 /usr/share/nginx/html

docker 命令启动 nginx

docker --name ngixn-server -p 80:80 -v ~/nginx/log:/var/log/nginx -v ~/nginx/www:/usr/share/nginx/html -v ~/nginx/conf:/etc/nginx/conf.d -d nginx:latest

docker-compose 启动 nginx

version: '3'
services:
    nginx_server:
        image: nginx:latest
        container_name: nginx-server
        ports:
            - 80:80

        volumes:
            - ~/nginx/log:/var/log/nginx
            - ~/nginx/www:/usr/share/nginx/html
            - ~/nginx/conf:/etc/nginx/conf.d
        restart: always
    #... 其他的服务

配置文件 nginx.conf

user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;
events {
    worker_connections  1024;
}
http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;
    sendfile        on;
    #tcp_nopush     on;
    keepalive_timeout  65;
    #gzip  on;
    include /etc/nginx/conf.d/*.conf;
}
  • user:运行 nginx 的用户
  • worker_processes: worker_processes 数量,一般是和 cpu 核数一样,但是也有特殊情况,比如处理的都是一些费时的类似 IO 操作,那么就可以把 worker 数量设置的比核数稍微多一点,具体要根据实际业务来设置。
  • error_log: 错误日志文件位置以及日志的级别,级别包含:debug info notice warn error crit alert emerg,级别依次增大。如果设置了 debug,必须在 configure 时加入–with-debug 配置
  • pid: 保存 master 进程 ID 的 pid 文件存放路径。
  • worker_connections: 每个 worker 进程同时处理的最大连接数。
  • keepalive_timeout: 连接超时时间。
  • include: 额外包含的内容。可以使用正则来做匹配。
  • log_format: 格式化日志格式。

自定义的 config 文件可以放置到 include 设置的文件夹下。举个例子创建一个 nginx-uwsgi 的配置文件:

server {
    listen 80 default_server;
    server_name  localhost;
    charset UTF-8;

    location /static {
        alias /usr/share/nginx/html/static/;
    }

    location / {
        include uwsgi_params;
        uwsgi_pass 127.0.0.1:8009;
        uwsgi_read_timeout 10;
    }
}

然后 docker restart nginx-server

最近的文章

优化Mac上的iTerm2

MacOS自带的Terminal在功能上不够强大,一般都会用iTerm2来替代。但是iTerm2还是有许多可以优化的地方!!zsh主要功能有 命令高亮 (识别 命令 正确性) 拓展性高 支持 命令补全安装#安装xcode Command Line Tools 如果已安装则逃过这步$ xcode-select --install $ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/i...…

奇技淫巧继续阅读
更早的文章

celery的学习使用

Celery 是一个专注于实时处理和任务调度的分布式任务队列, 同时提供操作和维护分布式系统所需的工具.. 所谓任务就是消息, 消息中的有效载荷中包含要执行任务需要的全部数据. Celery 是一个分布式队列的管理工具, 可以用 Celery 提供的接口快速实现并管理一个分布式的任务队列. Celery 本身不是任务队列, 是管理分布式任务队列的工具. 它封装了操作常见任务队列的各种操作, 我们使用它可以快速进行任务队列的使用与管理. Celery 架构图 安装 Celer...…

水滴石穿继续阅读