zoukankan      html  css  js  c++  java
  • Nginx 完整例子详解 + 实战

    下面这份实例来自 Nginx 官方配置。

    #!nginx
    : # 使用的用户和组
    : user  www www;
    : # 指定工作衍生进程数
    : worker_processes  2;
    : # 指定 pid 存放的路径
    : pid /var/run/nginx.pid;
    
    : # [ debug | info | notice | warn | error | crit ] 
    : # 可以在下方直接使用 [ debug | info | notice | warn | error | crit ]  参数
    : error_log  /var/log/nginx.error_log  info;
    
    : events {
    : # 允许的连接数
    : connections   2000;
    : # use [ kqueue | rtsig | epoll | /dev/poll | select | poll ] ;
    : # 具体内容查看 http://wiki.codemongers.com/事件模型
    : use kqueue;
    : }
    
    : http {
    : include       conf/mime.types;
    : default_type  application/octet-stream;
    
    : log_format main      '$remote_addr - $remote_user [$time_local]  '
    : '"$request" $status $bytes_sent '
    : '"$http_referer" "$http_user_agent" '
    : '"$gzip_ratio"';
    
    : log_format download  '$remote_addr - $remote_user [$time_local]  '
    : '"$request" $status $bytes_sent '
    : '"$http_referer" "$http_user_agent" '
    : '"$http_range" "$sent_http_content_range"';
    
    : client_header_timeout  3m;
    : client_body_timeout    3m;
    : send_timeout           3m;
    
    : client_header_buffer_size    1k;
    : large_client_header_buffers  4 4k;
    
    : gzip on;
    : gzip_min_length  1100;
    : gzip_buffers     4 8k;
    : gzip_types       text/plain;
    
    : output_buffers   1 32k;
    : postpone_output  1460;
    
    : sendfile         on;
    : tcp_nopush       on;
    : tcp_nodelay      on;
    : send_lowat       12000;
    
    : keepalive_timeout  75 20;
    
    : #lingering_time     30;
    : #lingering_timeout  10;
    : #reset_timedout_connection  on;
    
    
    : server {
    : listen        one.example.com;
    : server_name   one.example.com  www.one.example.com;
    
    : access_log   /var/log/nginx.access_log  main;
    
    : location / {
    : proxy_pass         http://127.0.0.1/;
    : proxy_redirect     off;
    
    : proxy_set_header   Host             $host;
    : proxy_set_header   X-Real-IP        $remote_addr;
    : #proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;
    
    : client_max_body_size       10m;
    : client_body_buffer_size    128k;
    
    : client_body_temp_path      /var/nginx/client_body_temp;
    
    : proxy_connect_timeout      90;
    : proxy_send_timeout         90;
    : proxy_read_timeout         90;
    : proxy_send_lowat           12000;
    
    : proxy_buffer_size          4k;
    : proxy_buffers              4 32k;
    : proxy_busy_buffers_size    64k;
    : proxy_temp_file_write_size 64k;
    
    : proxy_temp_path            /var/nginx/proxy_temp;
    
    : charset  koi8-r;
    : }
    
    : error_page  404  /404.html;
    
    : location /404.html {
    : root  /spool/www;
    
    : charset         on;
    : source_charset  koi8-r;
    : }
    
    : location /old_stuff/ {
    : rewrite   ^/old_stuff/(.*)$  /new_stuff/$1  permanent;
    : }
    
    : location /download/ {
    
    : valid_referers  none  blocked  server_names  *.example.com;
    
    : if ($invalid_referer) {
    : #rewrite   ^/   http://www.example.com/;
    : return   403;
    : }
    
    : #rewrite_log  on;
    
    : # rewrite /download/*/mp3/*.any_ext to /download/*/mp3/*.mp3
    : rewrite ^/(download/.*)/mp3/(.*)..*$
    : /$1/mp3/$2.mp3                   break;
    
    : root         /spool/www;
    : #autoindex    on;
    : access_log   /var/log/nginx-download.access_log  download;
    : }
    
    : location ~* ^.+.(jpg|jpeg|gif)$ {
    : root         /spool/www;
    : access_log   off;
    : expires      30d;
    : }
    : }
    : }

    下面这部分是摘自服务器上配置(修改后的版本)。我们来看一下详细配置。

    user nginx; # 设置使用的用户和组
    worker_processes auto; # 指定工作进程数
    error_log /var/log/nginx/error.log; # 指定错误日志位置
    pid /run/nginx.pid; # 指定 pid 存放的路径
    
    # Load dynamic modules. See /usr/share/nginx/README.dynamic.
    include /usr/share/nginx/modules/*.conf; # 配置多站点
    
    events {
        worker_connections 1024; # 允许的连接数
    }
    
    http {
        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;
        tcp_nodelay         on;
        keepalive_timeout   65;
        types_hash_max_size 2048;
    
        include             /etc/nginx/mime.types;
        default_type        application/octet-stream;
    
        # Load modular configuration files from the /etc/nginx/conf.d directory.
        # See http://nginx.org/en/docs/ngx_core_module.html#include
        # for more information.
        include /etc/nginx/conf.d/*.conf;
    
        server {
            listen       80 default_server; 
            listen       [::]:80 default_server;
            server_name  _;
            root         /usr/share/nginx/html; # 静态页面位置
    
            # Load configuration files for the default server block.
            include /etc/nginx/default.d/*.conf;
    
            location / { # 匹配所有以 / 开头的请求
            }
    
            error_page 404 /404.html; # 404 页面
                location = /40x.html {
            }
    
            error_page 500 502 503 504 /50x.html;
                location = /50x.html {
            }
            location /api/ { # 请求为/api/ 时
                proxy_pass http://localhost:8085/;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            }
            location /dce/ {
                proxy_pass http://localhost:8082/;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            }
            location /eo/ {
                proxy_pass http://localhost:8087/;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            }
        }

    接下来,我们看一下配置。

    1)查看系统 Nginx 用户。

    2)查看系统CPU数量。

    3)查看pid。

    4)多站点配置。

  • 相关阅读:
    week4:周测错题
    小程序1:登录/注册小程序
    小程序2:实现一个购物车
    day26:装饰器&面向对象当中的方法&property
    day25:7个魔术方法&5个关于类的魔术属性
    day24:多态&魔术方法__new__&单态模式
    day23:单继承&多继承&菱形继承&__init__魔术方法
    day22:面向对象封装对象操作&类操作&面向对象删除操作
    day21:正则函数&模块和包(import)
    APP探索之iAPP
  • 原文地址:https://www.cnblogs.com/zacky31/p/9306581.html
Copyright © 2011-2022 走看看