广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Nginx配置段(3)
  • 798
分享到

Nginx配置段(3)

Nginx 2023-01-31 01:01:49 798人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

安装方法: rpm及源码安装: # ./configure --prefix=/usr/local/Nginx --conf-path=/etc/nginx/nginx.conf --user=nginx --group=n

安装方法:
    rpm及源码安装:
    # ./configure --prefix=/usr/local/Nginx --conf-path=/etc/nginx/nginx.conf --user=nginx --group=nginx --error-log-path=/var/log/nginx/error.log --Http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --with-http_ssl_module --with-http_stub_status_module --with-http_gzip_static_module --with-http_flv_module --with-http_mp4_module --http-client-body-temp-path=/var/tmp/nginx/client --http-proxy-temp-path=/var/tmp/nginx/proxy --http-fastcgi-temp-path=/var/tmp/nginx/fastcgi
    # make && make install

    Tmalloc, gperftools

配置段:
nginx:
main配置段
http {
}

http配置:http core 配置一个静态WEB服务器
    ngx_http_core_module

    配置框架:
    http {
        upstream {
            .,..
        }

        server {
            listen IP:PORT;
            # 虚拟主机
            location /URL {
                if ...{
                    ...
                }    #类似于httpd中的<Location>,用于定义URL与本地文件系统的映射关系;
                root "/path/to/somewhere";
                ...
            }  
        }       #每个server类似于httpd中的一个<VirtualHost>

        server {
            ,,. 
        }  
    }

        注意:与http配置相关的指令必须放在http、server、location、upstream、if块中;

    虚拟主机相关的配置:
        1、server {}
            定义一个虚拟主机;

            server {
                listen 8080;
                server_name www.zhanx.wang;
                root "/vhosts/web1";
            }

        2、listen
            监听的端口
            完整格式 :listen address[:port] [default_server] [ssl] [spdy] [proxy_protocol] [setfib=number] [fastopen=number] [backlog=number] [rcvbuf=size] [sndbuf=size] [accept_filter=filter] [deferred] [bind] [ipv6only=on|off] [so_keepalive=on|off|[keepidle]:[keepintvl]:[keepcnt]];

            listen address[:port] [default_server] ssl 

            backlog=number: 指明tcp协议backlog队列的大小。默认为-1,表示不设置;
            rcvbuf=size:设定监听句柄的SO_RCVBUF参数;

            例如:
                listen 172.16.100.8:8080

        3、server_name name [...];
            后可跟多个主机名;名称还可以使用通配符和正则表达式(~);

            (1) 先做精确匹配;www.zhanxwang: 
            (2) 左侧通配符匹配,例如:*.zhanx.wang; 
            (3) 右侧通配符匹配,例如:www.*;
            (4) 正则表达式匹配,例如: ~^.*\.zhanx\.wang$
            (5) default_server

        4、location [=|~|~*|^~] /uri {...}
            location @name
            功能:允许根据用户请求的URI来匹配定义的各location,匹配到时,此请求将被相应的location块中的配置所处理;

                =: 精确匹配检查;
                ~: 正则表达式模式匹配,区分字符大小写;
                ~*:正则表达式模式 匹配,不区分字符大小写;
                ^~:URI的前半部分匹配,不检查正则表达式;

            匹配优先级:精确匹配(=)、^~、~和~*、由不带符号的URL进行左侧匹配;

            server {
                listen 80
                server_name www.zhanx.wang
                location / {
                        root "/vhosts/web1";
                    }

                location /images/ {
                        root "vhosts/images";
                    }

                location ~*\.PHP${
                        fcgipass
                    }
                }

        5、root
            设置web资源路径映射;用于指明请求的URL所对应的文档的根目录路径;

            location /images/ {
                root "/web/imgs/";
            }

        6、alias path
            用于location配置段,定义路径别名 

            location /images/ {
                alias /www/pictures/;
            }
            /file/imgs/upload/202301/31/0l5gzwmnnu5.jpg  <--- /www/pictures/a.jpg

            注意:root表示指明路径为对应location的“ /” URL;
            alias表示路径映射,即location中的URL是相对于alias所指明的路径而言;

        7、index file
            默认主页面
                index  index.php  index.html; 

        8、error_page code [...] [=code] URI | @name
            根据http状态码重定向错误页面
            error_page  404   /404.html

            =[code]: 以指定的响应码进行响应;省略code表示以新资源的响应码为响应码;

        9、try_files
            try_files path1[,path2,...] URI 

        10、基于IP地址的访问控制;
            allow IP/Network;
            deny  IP/Network;

        11、基于用户的访问控制;
            basic,digest

            auth_basic  "";
            auth_basic_user_file "/PATH/TO/PASSWord_FILE"
                账号密码文件建议使用htpasswd来创建;

        12、https服务
            生成私钥

        13、stub_status {on|off};
            仅能用于location上下文;

            location /status {
                stub_status on;
                allow 172.16.0.0/16;
                deny  all;
            }

            结果示例:

            Active connection: 6 #当前所有处于打开状态的连接数;
            server accepts handled requests
            241    241     431
            (1)已经接受的连接
            (2)已经处理过的连接数
            (3)已经处理过的请求数:在“保持连接”模式下,请求数量可能会多于连接数量;
            Reading:0 Writing:1 Waiting:5
                Reading:正处于接收请求状态的连接数;
                Writing:请求已经接收完成,正在处理请求或发送响应的过程中的连接数;
                waiting:保持连接模式,且处于活动状态的连接数;

        14、rewrite regex replacement flag;

            例如:
                ...
                rewrite ^/images/(.*\.jpg)$ /imgs/$1 last;
                rewrite ^/imgs/(.*\.jpg)$ /images/$1 last;

                ...
                rewrite ^/images/(.*\.jpg)$ /imgs/$1 break;
                ...

                /file/imgs/upload/202301/31/gpwpu2x0ny0.jpg --> /imgs/a/b/c/1.jpg

            flag:
                last:一旦此rewrite规则重写完成后,就不再被后面其它的rewrite规则进行处理,而是由user
                    Agent重新对重写后的url再一次发起请求,并从头开始执行类似的过程
                break:一旦此rewrite规则重写完成后,由user 
                    Agent 对新的URl重新发起请求,且不再会被当前location内的任何rewrite规则所检查
                redirect:以302响应码(临时重定向)返回新的URL;
                permanent:以301响应码(永久重定向)返回新的URL;

        15、if
            语法:if(condition){...}
            应用环境:server,location

            condition:
                (1) 变量名:
                    变量值为空串,或者以“0”开始,则为false;其他的均为true;
                (2) 以变量为操作数构成的比较表达式
                    可使用=,!=类似的比较操作符进行测试
                (3) 正则表达式的模式匹配操作
                    ~:区分大小写的模式匹配检查
                    ~*:不区分大小写的模式匹配检查
                    !~和!~*: 对上面两种测试取反
                (4) 测试路径为文件可能性:-f,!-f
                (5) 测试指定路径为目录的可能性:-d, !-d
                (6) 测试文件的存在性: -e, !-e
                (7) 检查文件是否有执行权限:-x,!-x

            例如:
                if ($http_user_agent ~* MSIE) {
                    rewrite ^(.*)$ /msie/$1 break;
                }

        16、防盗链
            location ~* \.(jpg|gif|jpeg|png)$ {
                valid_referer none blocked www.zhanx.wang
                if ($invalid_referer) {
                    rewrite ^/ http://www.zhanx.wang/403.html      #(盗链提示)
                }
            }

        17、定制访问日志格式
                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;

            注意:此处可用变量为Nginx各模块内建变量;

    网络连接相关的配置:
        1、keepalive_timeout time;
            保持连接的超时时长,默认为75s;

        2、keepalive_requests #;
            在一次保持连接上允许承载最大资源请求数;

        3、keepalive_disable [msie6|safari|none]
            为指定类型的浏览器禁用长连接;

        4、tcp_nodelay on|off
            对长连接是否使用TCP_NODELAY选项;

        5、client_header_timeout time;
            读取http请求报文首部的超时时长;

        6、client_body_timeout time;
            读取http请求报文body部分的超时时长;

        7、send_timeout time;
            发送响应报文的超时时长;

--结束END--

本文标题: Nginx配置段(3)

本文链接: https://www.lsjlt.com/news/184677.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Nginx配置段(3)
    安装方法: rpm及源码安装: # ./configure --prefix=/usr/local/nginx --conf-path=/etc/nginx/nginx.conf --user=nginx --group=n...
    99+
    2023-01-31
    Nginx
  • 3.Nginx配置进阶(三)
    nginx配置进阶(三)==============================================================================概述: 本章我们将会继续介绍Nginx中http段的配置,内...
    99+
    2023-01-31
    进阶 Nginx
  • Nginx演练(3)配置内容压缩
    如果对HTTP熟悉的话,对request-response请求过程应该很熟悉。比如访问“www.jd.com",一个完整页面的访问,往往会经过很多次的HTTP请求共同完成,这中间会涉及到浏览器并发数。具体片段如图客户端请求的资源内容有多种,...
    99+
    2023-01-31
    内容 Nginx
  • Nginx如何配置文件分段下载功能
    这篇文章主要为大家展示了“Nginx如何配置文件分段下载功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Nginx如何配置文件分段下载功能”这篇文章吧。Htm...
    99+
    2022-10-19
    nginx
  • nginx+php配置
    安装php yum install php #检查版本 php -v 安装nginx(根据我们自己的Nginx安装,以下可以不看) yum install nginx或者执行下面的步骤: 安装: 1.在vim /etc/p...
    99+
    2023-08-31
    nginx php 运维
  • Docker配置nginx
    1.Docker安装nginx 安装的命令 sudo docker search nginxdocker pull nginx 查看是否安装 docker images 运行测试nginx docker run --name nginx-...
    99+
    2023-08-20
    docker nginx 运维 ubuntu 服务器
  • nginx常用配置
    目录 1、全局块 2、events块 3、http块 3.1、http基本配置 3.2、http反向代理基本配置 3.3、http反向代理服务器和负载均衡 3.4、http_gzip配置 3.5、server相关配置 3.5.1、serv...
    99+
    2023-09-07
    nginx 运维 服务器
  • Nginx日志配置
      系统默认的错误日志配置: [root@node1 ~]# vim /etc/nginx/nginx.conferror_log /usr/local/nginx/logs/error.log;error_log /usr/local...
    99+
    2023-10-27
    nginx 服务器 运维 centos
  • nginx跨域配置
    nginx跨域配置 Access-Control-Allow-OriginAccess-Control-Allow-HeadersAccess-Control-Allow-MethodsAcc...
    99+
    2023-09-01
    nginx 服务器 运维
  • Nginx怎么配置
    这篇文章给大家分享的是有关Nginx怎么配置的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。匹配到F,往下匹配到D,停止往下/images/abc/def -> config D最长匹配到G,往下匹配D,停止...
    99+
    2023-06-04
  • nginx 限流配置
    限流算法令牌桶算法算法思想是:令牌以固定速率产生,并缓存到令牌桶中;令牌桶放满时,多余的令牌被丢弃;请求要消耗等比例的令牌才能被处理;令牌不够时,请求被缓存。漏桶算法算法思想是:水(请求)从上方倒入水桶,从水桶下方流出(被处理);来不及流出...
    99+
    2023-06-05
  • Nginx超时配置
    Nginx超时配置 Nginx主要有四类超时设置:客户端超时设置、DNS解析超时设置、代理超时设置,如果使用ngx_lua,则还有lua相关的超时设置。 1.客户端超时设置 对于客户端超时主要设置有读...
    99+
    2023-10-05
    nginx lua java
  • Nginx--server块配置
    server_name 指令 server_name:用来设置虚拟主机服务名称。 语法server name name …默认值server_name “”位置server 关于server_name的配置方式 1.精确匹配 2.通配符匹配...
    99+
    2023-08-30
    nginx 服务器 正则表达式
  • redis cluster (3) 配置
    一、redis 持久化说明1) 手工持久化   SAVE(同步回写)和 BGSAVE(异步回写) 两个命令都会调用 rdbSave 函数,它们都实现RDB持久化,但它们调用的方式各有不同:  SAVE 直接调用 rdbSave ,阻塞 R...
    99+
    2023-01-31
    redis cluster
  • 3、配置中心
    公众号: java乐园 1、 当一个系统中的配置文件发生改变的时候,经常的做法是重新启动该服务,才能使得新的配置文件生效,spring cloud config可以实现微服务中的所有系统的配置文件的统一管理,而且还可以实现当配置文件发生变...
    99+
    2023-01-31
    中心
  • Sublime Text 3 配置
    一:说明    SublimeText 是一个代码编辑器,SublimeText具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等.还可自定义键绑定,菜单和工具栏.SublimeText 的主要功能包括:拼写检查,...
    99+
    2023-01-31
    Sublime Text
  • nginx介绍及配置
    Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx的特点是占用内存少,并发能力...
    99+
    2023-09-09
    nginx
  • PHP+Nginx配置备忘
    Nginx支持php脚本解释需要安装php-fpm进程管理器,在php5.3之前版本,php-fpm需要单独安装,之后版本php-fpm集成到PHP解释器之中,编译PHP解释器时需要特别指定配置,不同...
    99+
    2023-09-13
    php nginx 运维
  • ubuntu22.4配置nginx和php
    实验操作步骤 安装ngix 这里使用命令: sudo apt install nginx 2.icestone@icestone-nb:~$ sudo apt install nginx3.[sudo...
    99+
    2023-09-22
    nginx php
  • nginx配置stream模块
    使用背景:使用stream模块转发应用服务器sftp连接请求。 解压nginx压缩包 tar -zxvf nginx-1.16.1.tar.gz 指定配置项,--prefix表示安装路径,--with-stream表示添加流模块 ./con...
    99+
    2023-09-04
    nginx 运维 服务器
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作