nginx的全局配置和HTTP相关配置_nginx http配置_老wang你好的博客-CSDN博客


本站和网页 https://blog.csdn.net/cp_dvd/article/details/126839888 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

nginx的全局配置和HTTP相关配置_nginx http配置_老wang你好的博客-CSDN博客
nginx的全局配置和HTTP相关配置
老wang你好
已于 2023-05-11 23:58:19 修改
1397
收藏
分类专栏:
nginx
文章标签:
服务器
运维
于 2022-09-15 23:30:19 首次发布
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/cp_dvd/article/details/126839888
版权
nginx
专栏收录该内容
3 篇文章
0 订阅
订阅专栏
目录
资源类型:
 网站访问量
网站访问量统计的重要指标
HTTP1.0和1.1的问题
HTTP2协议 
HTTP 请求访问的完整过程
HTTP 请求报文 
 http协议状态码分类
http协议常用的!!状态码!! 
 I/O 的具体实现方式 
 通过官方 yum 源安装nginx
Nginx 核心模块 
Nginx的配置文件的组成部分:
systemctl start nginx:       (组装启动,退出 )systemctl stop nginx.
默认的nginx.conf 配置文件格式说明                                         绿色自己加的
location 的详细使用 
 #语法规则:                                                         
Location @重定向         
 Nginx 四层访问控制
 Nginx 账户认证功能
 自定义错误页面(跳转)
 检测文件是否存在 (可自行创建)
长连接配置 
作为下载服务器配置
范例: 实现下载站点 
限流限速   规则必须写入http语句块里
限制并发连接数     规则必须写入http语句块里
实现百度云盘非会员限度限流功能: 
Nginx 状态页 
echo 模块实现信息显示 
自定义变量
常用内置变量       server {    都在里面
自定义默认格式日志 
自定义json格式日志   支持多个
json 格式的日志访问统计 
 关于 favicon.ico
Nginx 压缩功能
https 加密 
平滑升级和回滚
早期HTTP传输协议就是为了传输HTML(超文本协议)后来有了MIME(支持图片视频之类的)
在页面按F12可以查看那个最慢 
传输过程
1域名解析ip
DS解析
ip解析完之后就是三次握手 之后渲染,最后四次挥手
HTTP协议分层 
资源类型:
静态文件:无需服务端做出额外处理,服务器端和客户端的文件内容相同常见文件后缀:.html, .txt, .jpg, .js, .css, .mp3, .avi动态文件:服务端执行程序,返回执行的结果,服务器端和客户端的文件内容不相同常见文件后缀:.php, .jsp ,.asp
<scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<frag>
 URL组成
 参考链接
https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Basics_of_HTTP/Identifying_resources_on_the_Web 
  scheme:方案,访问服务器以获取资源时要使用哪种协议\
user:用户,某些方案访问资源时需要的用户名 password:密码,用户对应的密码,中间用:分隔 Host:主机,资源宿主服务器的主机名或IP地址 port:端口,资源宿主服务器正在监听的端口号,很多方案有默认端口号 path:路径,服务器资源的本地名,由一个/将其与前面的URL组件分隔 params:参数,指定输入的参数,参数为名/值对,多个参数,用;分隔 query:查询,传递参数给程序,如数据库,用?分隔,多个查询用&分隔 frag:片段,一小片或一部分资源的名字,此组件在客户端使用,用#分隔
 网站访问量
网站访问量统计的重要指标
IP(独立IP):即Internet Protocol,指独立IP数。一天内来自相同客户机IP 地址只计算一次,记录远程客户机IP地址的计算机访问网站的次数,是衡量网站流量的重要指标PV(访问量): 即Page View, 页面浏览量或点击量,用户每次刷新即被计算一次,PV反映的是浏览某网站的页面数,PV与来访者的数量成正比,PV并不是页面的来访者数量,而是网站被访问的页面数量UV(独立访客):即Unique Visitor,访问网站的一台电脑为一个访客。一天内相同的客户端只被计算一次。可以理解成访问某网站的电脑的数量。网站判断来访电脑的身份是通过cookies实现的。如果更换了IP后但不清除cookies,再访问相同网站,该网站的统计中UV数是不变的
HTTP1.0和1.1的问题
HTTP1.x在传输数据时,每次都需要重新建立连接,无疑增加了大量的延迟时间,特别是在移动端 更为突出 HTTP1.x在传输数据时,所有传输的内容都是明文,客户端和服务器端都无法验证对方的身份,无 法保证数据的安全性
HTTP2协议 
HTTP2协议抄的SPDY协议(谷歌发明) 解决了HTTP1的问题 还快自性选择是否加密
HTTP 请求访问的完整过程
HTTP 请求报文 
 http协议状态码分类
xx:100-101 信息提示 2xx:200-206 成功 3xx:300-307 重定向 4xx:400-415 错误类信息,客户端错误 5xx:500-505 错误类信息,服务器端错误
http协议常用的!!状态码!! 
00: 成功,请求数据通过响应报文的entity-body部分发送;OK 301: 请求的URL指向的资源已经被删除;但在响应报文中通过首部Location指明了资源现在所处的新位置;Moved Permanently 302: 响应报文Location指明资源临时新位置 Moved Temporarily 
304: 客户端发出了条件式请求,但服务器上的资源未曾发生改变,则通过响应此响应状态码通知客户端; Not Modified 307: 浏览器内部重定向 401: 需要输入账号和密码认证方能访问资源;Unauthorized 403: 请求被禁止;Forbidden,一般是因为权限错误或主页文件不存在 404: 服务器无法找到客户端请求的资源;Not Found 413: 上传的资源超过了最大限制值 499: 客户端主动断开连接。然而在实际业务开发中,当出现 HTTP 499 状态码时,大部分都是由于服务端 请求时间过长,导致客户端等的“不耐烦”了,因此断开了连接。比如:慢SQL问题,499是客户端读超时关闭 连接造成的,推荐从超时时间或者优化响应速度入手,web服务器发现客户端主动关闭连接后,记录到access 日志中的。可能是客户端接收响应超时了,可以先在客户端统计下是不是这个原因,再调查为什么会导致超时 500: 服务器内部错误;Internal Server Error,比如:cgi程序没有执行权限,或连接数据库失 败,rewrite死循环 502: Bad Gateway,代理服务器从后端服务器收到了一条错误响应,如无法连接到网关;Bad Gateway, 比如:后端服务端口没有打开,或后端服务不可用,iptable -j REJECT 503: 服务不可用,临时服务器维护或过载,服务器无法处理请求,比如:超过连接数和连接频率 504: Gateway Timeout,网关超时,或者后端服务器无回应报文,比如:服务端口虽然打开,但服务返回结果 时间过长,iptable -j DROP
 I/O 的具体实现方式 
1、select: select库是在linux和windows平台都基本支持的 事件驱动模型库,并且在接口的定义也基本相同,只是部分参数的含义略有差异,最大并发限制1024,是最早期的事件驱动模型。I/O多路复用这个概念被提出来以后, select于1983年第一个在BSD里面实现 2、poll: 在Linux 的基本驱动模型,windows不支持此驱动模型,是select的升级版,取消了最大的并发限制,在编译nginx的时候可以使用--with-poll_module和--without-poll_module这两个指定是否编译select库。poll出现在1997年 3、epoll: epoll是库是Nginx服务器支持的最高性能的事件驱动库之一,是公认的非常优秀的事件驱动模型,它和select和poll有很大的区别,epoll是poll的升级版,但是与poll有很大的区别.在2002年DavideLibenzi 实现了epoll.epoll的处理方式是创建一个待处理的事件列表,然后把这个列表发给内核,返回的时候在去轮询检查这个表,以判断事件是否发生,epoll支持一个进程打开的最大事件描述符的上限是系统可以打开的文件的最大数,同时epoll库的I/O效率不随描述符数目增加而线性下降,因为它只会对内核上报的“活跃”的描述符进行操作。 4、kqueue: 用于支持BSD系列平台的高校事件驱动模型,主要用在FreeBSD 4.1及以上版本、OpenBSD 2.0级以上版本,NetBSD级以上版本及Mac OS X 平台上,该模型也是poll库的变种,因此和epoll没有本质上的区别, 效效率和epoll相似 5、IOCP: Windows系统上的实现方式,对应第5种(异步I/O)模型。 6、/dev/poll: 用于支持unix衍生平台的高效事件驱动模型,主要在Solaris 平台、HP/UX,该模型是sun公司在开发 Solaris系列平台的时候提出的用于完成事件驱动机制的方案,它使用了虚拟的/dev/poll设备,开发人员将 要见识的文件描述符加入这个设备,然后通过ioctl()调用来获取事件通知,因此运行在以上系列平台的时候请使用/dev/poll事件驱动机制。效率和epoll相似 7、rtsig: 不是一个常用事件驱动,最大队列1024,不是很常用 8、eventport:
该方案也是sun公司在开发Solaris的时候提出的事件驱动库,只是Solaris 10以上的版本,该驱动库可防止内核崩溃等情况的发生。
 通过官方 yum 源安装nginx
vim /etc/yum.repos.d/nginx.repo             (创建写入)
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
 [root@rocky8 ~]#yum list nginx                                    更新一下源
#安装指定版本 [root@centos8 ~]#yum -y install nginx
apt update    自动更新有可能有锁
nginx -t 检查语法(建议经常用,损失无小事)
Nginx 核心模块 
Nginx的配置文件的组成部分:
主配置文件:nginx.conf子配置文件: include conf.d/*.conffastcgi, uwsgi,scgi 等协议相关的配置文件mime.types:支持的mime类型,MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型,MIME消息能包含文本、图像、音频、视频以及其他应用程序专用的数据,是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。
Nginx 主配置文件的配置指令方式:
directive value [value2 ...]; 注意 (1) 指令必须以分号结尾 (2) 支持使用配置变量 内建变量:由Nginx模块引入,可直接引用 自定义变量:由用户使用set命令定义,格式: set variable_name value; 引用变量:$variable_name
主配置文件结构:四部分 
main block:主配置段,即全局配置段,对http,mail都有效 #事件驱动相关的配置 event { ... } #http/https 协议相关配置段 http { ... } #默认配置文件不包括下面两个块 #mail 协议相关配置段 mail { ... } #stream 服务器相关配置段 stream {
... }
systemctl start nginx:       (组装启动,退出 ) systemctl stop nginx.
nginx(启动)nginx -s puit (退出)
默认的nginx.conf 配置文件格式说明                                         绿色自己加的
#全局配置端,对全局生效,主要设置nginx的启动用户/组,启动的工作进程数量,工作模式,Nginx的PID       (设置账号的话需要给账号相关权限,不然没用)  路径,日志路径等。 (普通账户是没有权限监听1023端口以下的)user nginx nginx;                                   启动Nginx工作进程的用户和
orker_processes [number | auto]; #启动Nginx工作进程的数量,一般设为和CPU核心数相同;                                                                            最好设置为auto(自动改成cpu的核数)
 worker_cpu_affinity 00000001 00000010 00000100 00001000 | auto ; #将Nginx工作进程绑定到指定的CPU核心,默认Nginx是不进行进程绑定的,绑定并不是意味着当前nginx进程独占以一核心CPU,但是可以保证此进程不会运行在其他核心上,这就极大减少了nginx的工作进程在不同的cpu核心上的来回跳转,减少了CPU对进程的资源分配与回收以及内存管理等,因此可以有效的提升nginx服务器的性能。 CPU MASK: 00000001:0号CPU 00000010:1号CPU 10000000:7号CPU
#error_log  logs/error.log;                   错误日志(可以自行盖)cat/apps/nginx/logs/error.log   #error_log  logs/error.log  notice; #error_log  logs/error.log  info;   
worker_priority 0; #工作进程优先级,-20~20(19)
worker_rlimit_nofile 65536; #所有worker进程能打开的文件数量上限,包括:Nginx的所有连接(例如与代理服务器的连接等),而不仅仅是与客户端的连接,另一个考虑因素是实际的并发连接数不能超过系统级别的最大打开文件数的限制.最好与ulimit -n 或者limits.conf的值保持一致,    (简单来说就是设置上线,防止忽然太多炸了)
daemon off; #前台运行Nginx服务用于测试、或者以容器运行时,需要设为off
守护进程一般都是开机自己启动的·后台进程,不需要用户登录
master_process off|on; #是否开启Nginx的master-worker工作模式,仅用于开发调试场景,默认为 on
worker_connections 65536; #设置单个工作进程的最大并发连接数   
( 和·worker_rlimit_nofile有关,)
use epoll; #使用epoll事件驱动,Nginx支持众多的事件驱动,比如:select、poll、epoll,只 能设置在events模块中设置。  
accept_mutex on; #on为同一时刻一个请求轮流由worker进程处理,而防止被同时唤醒所有 worker,避免多个睡眠进程被唤醒的设置,默认为off,新请求会唤醒所有worker进程,此过程也称为"惊群",因此nginx刚安装完以后要进行适当的优化。建议设置为on
multi_accept on; #on时Nginx服务器的每个工作进程可以同时接受多个新的网络连接,此指令默认为off,即默认为一个工作进程只能一次接受一个新的网络连接,打开后几个同时接受多个。建议设置为on}
#如果systemd启动,则需要修改nginx.service文件中加LimitNOFILE=100000,才能有效
[root@ubuntu2004 ~]#vim /lib/systemd/system/nginx.service
#root@centos8 ~]#vim /etc/security/limits.conf
root@centos8 ~]#vim /etc/security/limits.conf
可以一个nginx下多个网站, 也可以多个nginx下一个文件
是否在响应报文的Server首部显示nginx版本 http下(不显示版本信息显示软件名,可以自己改) server_tokens on | off | build | string;
nginx -s reload                重新加载文件
1 把京东另存下来
2 在vim /apps/nginx/conf/nginx.conf的最后的}写上路径 include /apps/nginx/conf/conf.d/*.conf;
3 mkdir /apps/nginx/conf/conf.d/   创建文件路径
server {                                                加在文件目录指定区     listen 80 default_server;           default_server  设置监听地址和端口,多个虚拟机时当前是否是默认的虚拟主机     server_name www.wang.org;     root /data/nginx/html/pc/; }
一个服务器上有多个网站他是通过ip头来确定你访问的是谁的,
你访问的域名他会转会成ip 而IP会把域名以Host(主机头的方式带走)去访问你指定的网站
访问IP号的话谁优先级高(在前面)先访问谁 ,也可以用IP地址端口号来区分  default_serve可以设置默认访问谁也可以指定访问 curl -H -v "host: www.wang.org" 10.0.0.100区分方法 1端口号 2 ip  3  主机头 server  一般主机头区分 合理
location 的详细使用 
 server {     listen 80 default_server;     server_name www.wang.org;     root /data/nginx/html/pc/;     location /test/ {                         当访问www.wang.org/test/时 默认文件没有此目录需要单独定义访问时需要在    location 下指定        alias /opt/pc/ ;     }
 #语法规则:                                                         
#语法规则:                                                        用于动静分离 访问谁 location [ = | ~ | ~* | ^~ ] uri { ... } =         #用于标准uri前,需要请求字串与uri精确匹配,大小敏感,如果匹配成功就停止向下匹配并立即处理请求 ^~         #用于标准uri前,表示包含正则表达式,并且匹配以指定的正则表达式开头,对uri的最左边部分做匹配检查,不区分字符大小写 ~         #用于标准uri前,表示包含正则表达式,并且区分大小写 ~*         #用于标准uri前,表示包含则表达式,并且不区分大写 不带符号           #匹配起始于此uri的所有的uri \         #用于标准uri前,表示包含正则表达式并且转义字符。可以将 . * ?等转义为普通符号 #        匹配优先级从高到低: =, ^~, ~/~*, 不带符号 
Location @重定向         
                                ngx_http_core_module      模块的上述大部分·指令都来源于这里
server {     listen 80 default_server;     server_name www.wang.org;     root /data/nginx/html/pc/;     error_page 404 @error_404;      #如果出现异常,则重新定向到@error_404这个location上         location @error_404 {              #就是自行指定错误输出         default_type text/html;         charset utf8;         return 200 '你访问的页面可能走丢了!';  } }
 Nginx 四层访问控制
  server {                                        自己访问自己也不行     listen 80 default_server;     server_name www.wang.org;     root /data/nginx/html/pc/;     deny 10.0.0.1;                              拒绝访问     allow 10.0.0.0/24;                         允许访问     deny all;                                        拒绝所有访问 #按先小范围到大范围排序 }    
 Nginx 账户认证功能
[root@ubuntu2004 conf.d]#apt install apache2-utils    下载安装包
[root@ubuntu2004 pc]#htpasswd -c -b /apps/nginx/conf/conf.d/.nginx_users wei 123456
htpasswd    创建文件地址  c 指定用户名 b 指定密码    [root@ubuntu2004 pc]#htpasswd  -b /apps/nginx/conf/conf.d/.nginx_users huahua 123456   htpasswd    创建文件地址      第二次不要再下c 不然会覆盖    b 指定密码   
curl http://wei:123456@www.wang.org/admin/     交互式登录
server {                                                可以抓包找到密码     listen 80 default_server;     server_name www.wang.org;     root /data/nginx/html/pc/;     location  /admin {     auth_basic   "login password";          指定提示符     auth_basic_user_file /apps/nginx/conf/conf.d/.nginx_users; 指定认证的人文件(下载包)     } }        
 自定义错误页面(跳转)
 server {     listen 80 default_server;     server_name www.wang.org;     root /data/nginx/html/pc/;     error_page 500 502 503 404 =200 /index.html;       错误页面也跳转到正确页面     location  /admin {     auth_basic   "login password";     auth_basic_user_file /apps/nginx/conf/conf.d/.nginx_users;     } }        
error_page 500 502 503 504 404 /error.html;      错误页面跳转到指定页面(需要在错误页面的指定文件里创建/error.htm在里面创建错误页面)
error_log /apps/nginx/logs/www.wang.org-error.log; 自定此文件错误日志放这里
 检测文件是否存在 (可自行创建)
server {     listen 80 ;     server_name www.wang.org;     root /data/nginx/html/pc/; #    error_log /apps/nginx/logs/www.wang.org-error.log;     try_files $uri $uri/index.html $uri.html =489;   若文件不存在 则按要求搜索 直到489     location  /admin {                                         也可手动创建访问xxx 就创建xxx.html 或什么     auth_basic   "login password";     auth_basic_user_file /apps/nginx/conf/conf.d/.nginx_users;     }  }   http://www.wang.org/xxx    
  
长连接配置 
keepalive_time time; #限制对一个连接中请求处理的最长时间,到时间后续的再有新的请求会断开连接,默认1h keepalive_timeout timeout [header_timeout]; #设置保持空闲的连接超时时长,0表示禁止长连接,默认为75s,通常配置在http字段作为站点全局配置 keepalive_requests number; #在一次长连接上所允许请求的资源的最大数量,默认为1000次
作为下载服务器配置
[root@ubuntu2004 ~]#mkdir /data/nginx/html/mirrors/rockylinux/8 -p   创建相关目录下的链接[root@ubuntu2004 conf.d]# vim mirrors.wang.org.conf
server {
    listen 80;
    server_name mirrors.wang.org;
     autoindex on;      默认不支持下载网站的功能  加上他才能把文件列出来,用户才能访问到
    root /data/nginx/html/mirrrors/;
 [root@ubuntu2004 ~]#mount /dev/sr0 /data/nginx/html/m^Crors/rockylinux/8
相关指令: 
utoindex on | off;#自动文件索引功能,默为off autoindex_exact_size on | off; #计算文件确切大小(单位bytes),off 显示大概大小(单位 K、M),默认on autoindex_localtime on | off ; #显示本机时间而非GMT(格林威治)时间,默认off charset charset | off; #指定字符编码,默认为off,中文会乱码,指定为utf8 autoindex_format html | xml | json | jsonp; #显示索引的页面文件风格,默认html limit_rate rate; #限制响应客户端传输速率(除GET和HEAD以外的所有方法),单位B/s,即 bytes/second,默认值0,表示无限制,此指令由ngx_http_core_module提供 set $limit_rate 4k; #也可以通变量限速,单位B/s,同时设置,此项优级高.Rate limit can also be set in the $limit_rate variable, however, since version 1.17.0, this method is not recommended:
范例: 实现下载站点 
#注意:download不需要index.html文件 [root@centos8 ~]# mkdir -p /data/nginx/html/pc/download [root@centos8 ~]# vim /apps/nginx/conf/conf.d/pc.conf location /download { autoindex on;         #自动索引功能 autoindex_exact_size on;         #计算文件确切大小(单位bytes),此为默认值,off只显示大概大 小(单位kb、mb、gb) autoindex_localtime on;         #on表示显示本机时间而非GMT(格林威治)时间,默为为off显示GMT 时间 charset utf8;         #支持中文 limit_rate 1024k;         #限速,默认不限速 root /data/nginx/html/pc; } [root@centos8 ~] # cp /root/anaconda-ks.cfg /data/nginx/html/pc/download/ #重启Nginx并访问测试下载页面 #可以从清华大学镜像源同步下载实现仓库功能 [root@centos8 ~]#rsync -avz rsync://mirrors.tuna.tsinghua.edu.cn/ubuntu /download/ubuntu
限流限速   规则必须写入http语句块里
限制下载速度
# cat /etc/nginx/conf.d/mirrors.wang.conf server { listen 80; server_name mirrors.wang.org; root /data/mirrors/; charset utf8; autoindex on; autoindex_exact_size off; autoindex_localtime on; limit_rate_after 100m;         #下载达到100MB数据后开始限速 limit_rate 100k;                   #限速100k location / { index index.html; }
 #示例:
http { limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s; ... server { ... location /search/ { limit_req zone=one burst=5; limit_req_status 500; #默认503,可以指定其它状态码 }
#参数说明 limit_req_zone定义在http块中,$binary_remote_addr表示以客户端IP地址的二进制形式为限流依据的key Zone定义IP状态及URL访问频率的共享内存区域。zone=keyword标识区域的名字,以及冒号后面跟区域大小。8000个IP地址的状态信息约1MB,例子区域可以存储80000个IP地址。 Rate定义最大请求速率。示例中速率不能超过每秒10个请求。超过此速率的请求放入burst队列做延迟处理 burst表示队列大小,当此队列满后,会中断请求报错 nodelay表示超过请求速率并且缓存区满后不延迟处理,立即返回503错误 
#可以有几个limit_req指令。例如,以下配置将限制来自单个 IP 地址的请求的处理速率,同时限制虚拟服务器的请求处理速率 #示例: limit_req_zone $binary_remote_addr zone=perip:10m rate=1r/s; limit_req_zone $server_name zone=perserver:10m rate=10r/s; server { ... limit_req zone=perip burst=5 nodelay; limit_req zone=perserver burst=10; } 
范例: 基于来源IP对下载速率限制,限制每秒处理1次请求,缓存区请求突发队列为10个
 # http标签段定义请求限制, rate限制速率,限制一秒钟最多一个IP请求 #注意:$remote_addr和$binary_remote_addr的不同 http {         limit_req_zone $binary_remote_addr zone=req_one:10m rate=1r/s;     }         server {         listen 80;         server_name mirrors.wang.org; #请求超过1r/s,剩下的将被延迟处理,请求数超过burst定义的数量,则返回503         limit_req zone=req_one burst=10 nodelay;         location / {         root /data/mirrors/;         index index.html;         } } limit_req_zone $binary_remote_addr zone=req_one:10m rate=1r/s; #第一个参数:$binary_remote_addr表示通过这个标识来做限制,限制同一客户端ip地址。 #第二个参数:zone=req_one:10m表示生成一个大小为10M,名为req_one的内存区域用来存储访问频次信息 #第三个参数:rate=1r/s表示允许相同标识的客户端的访问频次,此处限制的是每秒1次。 limit_req zone=req_one burst=10 nodelay; #第一个参数:zone=req_one 设置使用哪个配置区域来做限制,与上面limit_req_zone的name对应。 #第二个参数:burst=10,设置一个大小为10的缓冲区,当有大量请求过来时,超过了访问频次限制的请求可以先放到这个缓冲区内。 #第三个参数:nodelay,超过访问频次并且缓冲区也满了的时候,则会返回503,如果没有设置,则所有请求会等待排队。
限制并发连接数     规则必须写入http语句块里
范例: 设置共享内存区域和给定键值的最大允许个连接数。超过此限制时服务器将返回503错误
# cat /etc/nginx/conf.d/mirrors.wang.org.conf  limit_conn_zone $binary_remote_addr zone=conn_zone:10m;    同一个ip做依据,刚在10M的缓冲区 server {     listen 80 ;     server_name www.wang.org;     root /data/nginx/html/pc/;     limit_conn conn_zone 2;        #限制并发2个连接 }
实现百度云盘非会员限度限流功能: 
当下载超过100M则限制下载速度为500k限制web服务器请求数处理为1秒一个,触发值为5、限制用户仅可同时下载一个文件。如果同时下载超过2个资源,则返回提示 "请联系管理员进行会员充值" 并跳转到其他页面
#cat /etc/nginx/conf.d/mirrors.wang.conf limit_req_zone $binary_remote_addr zone=req_zone:10m rate=1r/s; limit_conn_zone $binary_remote_addr zone=conn_zone:10m; server { listen 80; server_name mirrors.wang.org; root /data/mirrors/; charset utf8; autoindex on; autoindex_exact_size off; autoindex_localtime on; limit_req zone=req_zone burst=5 nodelay; limit_conn conn_zone 2; limit_rate_after 100m; limit_rate 500k; error_page 503 @error_page; location @error_page { default_type text/html; return 200 '温馨提示:请联系管理员进行会员充值!'; #return https://pan.baidu.com/buy/center?tag=8&from=loginpage#/svip ; } } 
Nginx 状态页 
server {     listen 80 ;     server_name www.wang.org;     root /data/nginx/html/pc/;     location /status {           访问它就返回状态页     stub_status;                        ~~~~     } }
#状态页用于输出nginx的基本状态信息: #输出信息示例: Active connections: 291 server accepts handled requests 16630948 16630948 31070465 上面三个数字分别对应accepts,handled,requests三个值 Reading: 6 Writing: 179 Waiting: 106 Active connections: #当前处于活动状态的客户端连接数,包括连接等待空闲连接数 =reading+writing+waiting accepts:#统计总值,Nginx自启动后已经接受的客户端请求连接的总数。 handled:#统计总值,Nginx自启动后已经处理完成的客户端请求连接总数,通常等于accepts,除非有因 worker_connections限制等被拒绝的失败连接,即失败连接数=accepts-handled requests:#统计总值,Nginx自启动后客户端发来的总的请求数。因为长连接的原因此值大于上面的 accept数 Reading:#当前状态,正在读取客户端请求报文首部的连接的连接数,数值越大,说明排队现象严重,性能不足 Writing:#当前状态,正在向客户端发送响应报文过程中的连接数,数值越大,说明访问量很大 Waiting:#当前状态,正在等待客户端发出请求的空闲连接数,开启keep-alive 时,Waiting+reading+writing=active connections
curl -s http://www.wang.org/nginx_status | awk '/Active connections/{print $3}'   提去当前链接量
nginx-module-vts 模块实现流量监控     
GitHub - vozlt/nginx-module-vts: Nginx virtual host traffic status module   官网下载
[root@centos8 ~]#cd /usr/local/src [root@centos8 src]#git clone git://github.com/vozlt/nginx-module-vts.git [root@centos8 src]#cd nginx-1.18.0/ [root@centos8 nginx-1.18.0]#./configure --prefix=/apps/nginx --add- module=/usr/local/src/nginx-module-vts [root@centos8 nginx-1.18.0]#make && make install [root@centos8 ~]#vim /apps/nginx/conf/nginx.conf http { ...... vhost_traffic_status_zone; ...... server { ...... location /status { vhost_traffic_status_display; vhost_traffic_status_display_format html; } ...... } } [root@centos8 ~]#systemctl restart nginx #浏览器访问:http://<nginx_ip>/status 可以看到下面显示 
echo 模块实现信息显示 
[root@ubuntu2004 src]#unzip echo-nginx-module-master.zip         解压
[root@ubuntu2004 src]# cd nginx-1.22.0/
[root@ubuntu2004 conf.d]#vim www.wang.org.conf server {     listen 80 ;     server_name www.wang.org;     root /data/nginx/html/pc/;     location /echo {      echo $request;            不会啥打印啥     } }
systemctl restart nginx
[root@centos8 ~]#nginx -V   出来变量 nginx version: wanginx/1.68.9 built by gcc 8.3.1 20191121 (Red Hat 8.3.1-5) (GCC) built with OpenSSL 1.1.1c FIPS 28 May 2019 TLS SNI support enabled configure arguments: --prefix=/apps/nginx --user=nginx --group=nginx --with- http_ssl_module --with-http_v2_module --with-http_realip_module --with- http_stub_status_module --with-http_gzip_static_module --with-pcre --with-stream --with-stream_ssl_module --with-stream_realip_module
--add-module=/usr/local/src/echo-nginx-module-master 写入要增加的变量(路径加文件) #测试查看结果[root@centos7 ~]#curl http://www.wang.org/echo
自定义变量
假如需要自定义变量名称和值,使用指令 set $variable value; 语法格式:
Syntax: set $variable value; Default: — Context: server, location, if
范例 
set $name magedu; echo $name; set $my_port $server_port; echo $my_port; echo "$server_name:$server_port"; #输出信息如下 [root@centos6 ~]#curl www.wang.org/main magedu 80 www.wang.org:80
常用内置变量       server {    都在里面
$remote_addr; #存放了客户端的地址,注意是客户端的公网IP
$proxy_add_x_forwarded_for #此变量表示将客户端IP追加请求报文中X-Forwarded-For首部字段,多个IP之间用逗号分隔,如果请求中没有X-Forwarded-For,就使用$remote_addr the “X-Forwarded-For” client request header field with the $remote_addr variable appended to it, separated by a comma. If the “X-Forwarded-For” field is not present in the client request header, the $proxy_add_x_forwarded_for variable is equal to the $remote_addr variable.
$args; #变量中存放了URL中的所有参数,例如:http://www.wang.org/main/index.do? id=20190221&partner=search #返回结果为: id=20190221&partner=search
$is_args #如果有参数为? 否则为空 “?” if a request line has arguments, or an empty string otherwise
$document_root; #保存了针对当前资源的请求的系统根目录,例如:/apps/nginx/html。
$document_uri; #保存了当前请求中不包含参数的URI,注意是不包含请求的指令,比 如:http://www.wang.org/main/index.do?id=20190221&partner=search会被定义 为/main/index.do #返回结果为:/main/index.do
$host; #存放了请求的host名称
limit_rate 10240;
echo $limit_rate; #如果nginx服务器使用limit_rate配置了显示网络速率,则会显示,如果没有设置, 则显示0
$remote_port; #客户端请求Nginx服务器时随机打开的端口,这是每个客户端自己的端口
$remote_user; #已经经过Auth Basic Module验证的用户名
$request_body_file; #做反向代理时发给后端服务器的本地资源的名称
$request_method; #请求资源的方式,GET/PUT/DELETE等
$request_filename; #当前请求的资源文件的磁盘路径,由root或alias指令与URI请求生成的文件绝对路径, 如:/apps/nginx/html/main/index.html
$request_uri; #包含请求参数的原始URI,不包含主机名,相当于:$document_uri?$args,例如:/main/index.do? id=20190221&partner=search
$scheme; #请求的协议,例如:http,https,ftp等
$server_protocol; #保存了客户端请求资源使用的协议的版本,例如:HTTP/1.0,HTTP/1.1,HTTP/2.0等
$server_addr; #保存了服务器的IP地址
$server_name; #请求的服务器的主机名
$server_port; #请求的服务器的端口号
$http_user_agent; #客户端浏览器的详细信息
$http_cookie; #客户端的所有cookie信息
$cookie_<name> #name为任意请求报文首部字部cookie的key名
$http_<name> #name为任意请求报文首部字段,表示记录请求报文的首部字段,ame的对应的首部字段名需要为小写,如果有横线需要替换为下划线 arbitrary request header field; the last part of a variable name is the field name converted to lower case with dashes replaced by underscores #用下划线代替横线
#示例: echo $http_user_agent; echo $http_host; $sent_http_<name>
#name为响应报文的首部字段,name的对应的首部字段名需要为小写,如果有横线需要替换为下划线,此变量有问题 echo $sent_http_server;
$arg_<name> #此变量存放了URL中的指定参数,name为请求url中指定的参数 echo $arg_id;
自定义默认格式日志 
#注意:此指令只支持http块,不支持server块
[root@ubuntu2004 conf.d]#vim www.wang.org.conf 
log_format access_log_format '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"' '$server_name:$server_port';
server {     listen 80 ;     server_name www.wang.org;     root /data/nginx/html/pc/;    access_log /apps/nginx/logs/www.wang.org-access.log access_log_format; }
#注意:此指令一定要在放在log_format命令后 access_log logs/access.log access_log_format;
[root@ubuntu2004 logs]#tail -f www.wang.org-access.log    访问查看
自定义json格式日志   支持多个
 log_format access_json '{"@timestamp":"$time_iso8601",'         '"host":"$server_addr",'         '"clientip":"$remote_addr",'         '"size":$body_bytes_sent,'         '"responsetime":$request_time,'        #总的处理时间         '"upstreamtime":"$upstream_response_time",' #后端应用服务器处理时间         '"upstreamhost":"$upstream_addr",'            '"http_host":"$host",'         '"uri":"$uri",'         '"xff":"$http_x_forwarded_for",'         '"referer":"$http_referer",'         '"tcp_xff":"$proxy_protocol_addr",'         '"http_user_agent":"$http_user_agent",'         '"status":"$status"}';      access_log  /apps/nginx/logs/access_json.log  access_json;
 和上面一样,看不懂可以去网上找一下JSON格式转换一堆呢   
[root@ubuntu2004 logs]#apt install jq      格式装换 [root@ubuntu2004 logs]#cat www.wang.org-access-json.log |jq
json 格式的日志访问统计 
 #python3 [root@centos8 ~]#dnf -y install python3
vim json_access.py 
#!/usr/bin/env python3
#coding:utf-8
status_200= []
status_404= []
with open("/apps/nginx/logs/www.wang.org-access-json.log") as f:
for line in f.readlines():
line = eval(line)
if line.get("status") == "200":
status_200.append(line.get)
elif line.get("status") == "404":
status_404.append(line.get)
else:
print("状态码 ERROR")
print((line.get("clientip")))
f.close()
print("状态码200的有--:",len(status_200))
print("状态码404的有--:",len(status_404))
python3  json_access.py  
 关于 favicon.ico
favicon.ico 文件是浏览器收藏网址时显示的图标,当客户端使用浏览器问页面时,浏览器会自己主动发起请求获取页面的favicon.ico文件,但是当浏览器请求的favicon.ico文件不存在时,服务器会记录404日志,而且浏览器也会显示404报错
方法一:服务器不记录访问日志: location = /favicon.ico { log_not_found off; access_log off; } #方法二:将图标保存到指定目录访问: #location ~ ^/favicon\.ico$ { location = /favicon.ico { root /data/nginx/html/pc/images; expires 365d; #设置文件过期时间 access_log off; }
#方法三:直接放在网页文件哪里
Nginx 压缩功能
 Nginx对文件的压缩功能是依赖于模块 ngx_http_gzip_module,默认是内置模块 官方文档: https://nginx.org/en/docs/http/ngx_http_gzip_module.html 
配置指令如下:
启用或禁用gzip压缩,默认关闭 gzip on | off;
#压缩比由低到高从1到9,默认为1 gzip_comp_level level;
#禁用IE6 gzip功能                        有的没有 gzip_disable "MSIE [1-6]\.";
#gzip压缩的最小文件,小于设置值的文件将不会压缩 gzip_min_length 1k;
#启用压缩功能时,协议的最小版本,默认HTTP/1.1 gzip_http_version 1.0 | 1.1;
#指定Nginx服务需要向服务器申请的缓存空间的个数和大小,平台不同,默认:32 4k或者16 8k; gzip_buffers number size;
#指明仅对哪些类型的资源执行压缩操作;默认为gzip_types text/html,不用显示指定,否则出错 gzip_types mime-type ...;
#如果启用压缩,是否在响应报文首部插入“Vary: Accept-Encoding”,一般建议打开 gzip_vary on | off;
#预压缩,即直接从磁盘找到对应文件的gz后缀的式的压缩文件返回给用户,无需消耗服务器CPU #注意: 来自于ngx_http_gzip_static_module模块 gzip_static on | off;
 配置指令如下:
#启用或禁用gzip压缩,默认关闭 gzip on | off; #压缩比由低到高从1到9,默认为1 gzip_comp_level level; #禁用IE6 gzip功能 gzip_disable "MSIE [1-6]\."; #gzip压缩的最小文件,小于设置值的文件将不会压缩 gzip_min_length 1k; #启用压缩功能时,协议的最小版本,默认HTTP/1.1 gzip_http_version 1.0 | 1.1; #指定Nginx服务需要向服务器申请的缓存空间的个数和大小,平台不同,默认:32 4k或者16 8k; gzip_buffers number size; #指明仅对哪些类型的资源执行压缩操作;默认为gzip_types text/html,不用显示指定,否则出错 gzip_types mime-type ...; #如果启用压缩,是否在响应报文首部插入“Vary: Accept-Encoding”,一般建议打开 gzip_vary on | off; #预压缩,即直接从磁盘找到对应文件的gz后缀的式的压缩文件返回给用户,无需消耗服务器CPU #注意: 来自于ngx_http_gzip_static_module模块 gzip_static on | off; #重启nginx并进行访问测试压缩功能 [root@centos8 ~]# cp /apps/nginx/logs/access.log /data/nginx/html/pc/m.txt [root@centos8 ~]# echo "test" > /data/nginx/html/pc/test.html #小于1k的文件测试是否 会压缩[root@centos8 ~]# vim /apps/nginx/conf/nginx.conf
server {     listen 80 ;     server_name www.wang.org;     root /data/nginx/html/pc/;
gzip on; gzip_comp_level 5; gzip_min_length 1k; gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/gif image/png; gzip_vary on; }
https 加密 
server {     listen 80 ;       server_name 8467238_m50.wangxiaochun.com.pem;     (名字必须和加密文件一样)     root /data/nginx/html/pc/;     listen 443 ssl http2;     ssl_certificate /apps/nginx/conf/conf.d/8467238_m50.wangxiaochun.com.pem;       ssl_certificate_key /apps/nginx/conf/conf.d/8467238_m50.wangxiaochun.com.key; }   指定目录文件夹俩钥匙
DNS 也要改 域名改了嘛
https://8467238_m50.wangxiaochun.com/
平滑升级和回滚
 有时候需要对Nginx版本进行升级以满足对其功能的需求,例如添加新模块,需要新功能,而此时Nginx又在跑着业务无法停止,这时就可以选择平滑升级
平滑升级四个阶段
只有旧版nginx的master和worker进程旧版和新版nginx的master和worker进程并存,由旧版nginx接收处理用户的新请求(注意:做快照方便测试回滚)旧版和新版nginx的master和worker进程并存,由新版nginx接收处理用户的新请求只有新版nginx的master和worker进程
 下载最新稳定版 [root@centos8 ~]#wget http://nginx.org/download/nginx-1.23.1tar.gz (本身22.0只能如此)[root@centos8 ~]#tar xvf nginx-1.23.1.tar.gz [root@centos8 ~]#cd nginx-1.23.1
#查看当前使用的版本及编译选项。结果如下:
[root@centos8 ~]/apps/nginx/sbin/nginx -V nginx version: nginx/1.22.0 built by gcc 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1)  built with OpenSSL 1.1.1f  31 Mar 2020 TLS SNI support enabled configure arguments: --prefix=/apps/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-stream --with-stream_ssl_module --with-stream_realip_module
configure arguments    #后面是以前编译时的参数。现在编译使用一样的参数#开始编译新版本
[root@centos8 nginx-1.22.0]#./configure     --prefix=/apps/nginx --user=nginx -- group=nginx --with-http_ssl_module --with-http_v2_module --with- http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-stream --with-stream_ssl_module --with-stream_realip_module
#只要make无需要make install [root@centos8 nginx-1.22.0]#make [root@centos8 nginx-1.22.0]#objs/nginx -v nginx version: nginx/1.22.0
#查看两个版本 [root@centos8 nginx-1.22.0]#ll objs/nginx /apps/nginx/sbin/nginx -rwxr-xr-x 1 nginx nginx 7591096 Jun 7 16:28 /apps/nginx/sbin/nginx -rwxr-xr-x 1 root root 7723272 Jun 7 17:27 objs/nginx
#把之前的旧版的nginx命令备份     防止不兼容,可用来回滚 [root@centos8 nginx-1.22.0]#cp /apps/nginx/sbin/nginx /opt/nginx.old
#把新版本的nginx命令复制过去覆盖旧版本程序文件,注意:需要加 -f 选项强制覆盖,否则会提示Text file busy [root@centos8 nginx-1.22.0]#cp -f ./objs/nginx /apps/nginx/sbin/
#如果cp 不加-f 选项,会出现下面提示 [root@rocky8 nginx-1.23.1]#cp objs/nginx /apps/nginx/sbin/ cp: overwrite '/apps/nginx/sbin/nginx'? y cp: cannot create regular file '/apps/nginx/sbin/nginx': Text file busy
检测一下有没有问题 [root@centos8 nginx-1.23.1]#/apps/nginx/sbin/nginx -t
#发送信号USR2 平滑升级可执行程序,将存储有旧版本主进程PID的文件重命名为nginx.pid.oldbin,并启动新的nginx
#此时两个master的进程都在运行,只是旧的master不在监听,由新的master监听80此时Nginx开启一个新的master进程,这个master进程会生成新的worker进程,这就是升级后的Nginx进程,此时老的进程不会自动退出,但是当接收到新的请求不作处理而是交给新的进程处理。
[root@centos8 nginx-1.23.1]#kill -USR2 `cat /apps/nginx/logs/nginx.pid`
#可以看到两个master,新的master是旧版master的子进程,并生成新版的worker进程
[root@centos8 nginx-1.23.1]#ps auxf|grep nginx
root       34825  0.0  0.0   9392   720 pts/1    S+   18:04   0:00          \_ grep --color=auto nginxroot         751  0.0  0.1   8624  3044 ?        Ss   06:06   0:00 nginx: master process /apps/nginx/sbin/nginxnginx      34135  0.0  0.1   9292  3356 ?        S    17:38   0:00  \_ nginx: worker process
#先关闭旧nginx的worker进程,而不关闭nginx主进程方便回滚
#向原Nginx主进程发送WINCH信号,它会逐步关闭旗下的工作进程(主进程不退出),这时所有请求都会由新版Nginx处理
[root@centos8 nginx-1.23.1]#kill -WINCH `cat /apps/nginx/logs/nginx.pid.oldbin` 
#如果旧版worker进程有用户的请求,会一直等待处理完后才会关闭
[root@centos8 nginx-1.23.1]#pstree -p|grep nginx |-nginx(8814)---nginx(12014)-+-nginx(12015) | `-nginx(12016)#经过一段时间测试,新版本服务没问题,最后发送QUIT信号,退出老的master
[root@centos8 nginx-1.23.1]#kill -QUIT `cat /apps/nginx/logs/nginx.pid.oldbin`#查看版本是不是已经是新版了 [root@centos8 nginx-1.23.1]#nginx -v
#回滚 #如果升级的版本发现问题需要回滚,可以发送HUP信号,重新拉起旧版本的worker [root@centos8 nginx-1.23.1]#kill -HUP `cat /apps/nginx/logs/nginx.pid.oldbin` [root@centos8 nginx-1.23.1]#pstree -p |grep nginx
#最后关闭新版的master [root@centos8 nginx-1.23.1]#kill -QUIT `cat /apps/nginx/logs/nginx.pid`#恢复旧版的文件 [root@rocky8 ~]#mv /opt/nginx.old /apps/nginx/sbin/
[root@ubuntu2004 ~]#rpm -qc nginx     #可以查看读取的配置文件适用于yum安装
老wang你好
关注
关注
点赞
收藏
觉得还不错?
一键收藏
打赏
知道了
评论
nginx的全局配置和HTTP相关配置
server {错误页面也跳转到正确页面}}错误页面跳转到指定页面(需要在错误页面的指定文件里创建/error.htm在里面创建错误页面)自定此文件错误日志放这里检测文件是否存在 (可自行创建)server {若文件不存在 则按要求搜索 直到489location /admin { 也可手动创建访问xxx 就创建xxx.html 或什么}}
复制链接
扫一扫
专栏目录
通过nginx代理拦截请求进行全局访问限制
01-10
本文介绍了通过nginx代理拦截请求进行全局访问限制,分享给大家,具体如下:
运行环境:
Ubantu 14.0
tomcat7
nginx 1.4.6(更新后1.5.6)
项目中经常会用到权限管理,必然的就会存在权限的设定和验证;对于登陆或者模块的权限设定验证,在项目中直接实现;那么问题出现了
1.访问资源文件
2.多项目访问权限
3.tomcat中虚拟目录的访问权限
公司项目中用到文件的上传下载,在线预览等功能;当然用户在使用的时候,我们不可能把用户的上传的文件放在项目中,那么必然会用到
虚拟目录来映射文件的位置,或者说跨域夸项目;如果没有对这些进行一个访问的权限的限制,那
nginx运行php的配置(wordpress)
10-06
nginx运行php的配置,以及运行wordpress的相关配置。将nginx配置文件拆分成多个配置文件,包括全局配置、每个域名的单独配置,考虑到安全性、缓存等多个因素。
参与评论
您还未登录,请先
登录
后发表或查看评论
Nginx配置文件nginx.conf的简单了解
LUYUCAN的博客
03-13
26
nginx的配置文件nginx.conf之简单理解
详解nginx 配置文件解读
01-20
nginx配置文件主要分为四个部分:
main{#(全局设置)
http{#服务器
upstream{} #(负载均衡服务器设置:主要用于负载均衡和设置一系列的后端服务器)
server{ #(主机设置:主要用于指定主机和端口)
location{}#(URL匹配特点位置的设置)
server继承main,location继承server,upstream即不会继承其他设置也不会被继承。
一、main 全局配置
nginx在运行时与具体业务功能(比如http服务或者email服务代理)无关的一些参数,比如工作进程数,运行的身份等。
user www www;
worker
Nginx的超时timeout配置详解
01-20
本文介绍 Nginx 的 超时(timeout)配置。分享给大家,具体如下:
Nginx 处理的每个请求均有相应的超时设置。如果做好这些超时时间的限定,判定超时后资源被释放,用来处理其他的请求,以此提升 Nginx 的性能。
keepalive_timeout
HTTP 是一种无状态协议,客户端向服务器发送一个 TCP 请求,服务端响应完毕后断开连接。
如果客户端向服务器发送多个请求,每个请求都要建立各自独立的连接以传输数据。
HTTP 有一个 KeepAlive 模式,它告诉 webserver 在处理完一个请求后保持这个 TCP 连接的打开状态。若接收到来自客户端的其它请求,服务端会利用这
lua+nginx动态更新配置.zip
04-03
配置为全局生效,即需对所有工作进程共享。更新频率比较慢,使用lua_shared_dict进行存储。如下定义:
lua_shared_dict sysconfig 10k;
成员包括:
"time":配置文件的生成的时间戳(用来判断文件是否有更新)eg:1585209315
"kxsip":与可信控制服务数据交互IP地址eg:192.168.0.1
"kxsport":与可信控制服务数据交互端口eg:8001
"gettokenapi":请求userID对应的token的API接口eg:https://192.168.5.4:2233/token
"ssourl":SSO服务器地址eg: https://12.52.46.82:5555/login
。。。
在nginx初始化中使用init_worker_by_lua_file 指令创建一个循环定时器,每次超时的时候去判断配置文件是否更新了。如果更新了重新加载。
通过在工作线程中使用rewrite_by_lua_block指令,获取任意时刻的配置情况测试代码的可用性。
Nginx的配置--HTTP服务器
qq_41317716的博客
10-23
2365
Nginx的配置--HTTP服务器
nginx之http模块配置项
lucas1018的博客
11-02
1316
常见的nginx配置文件大概如下:
http {
include mime.types;
access_log logs/access.log;
gzip on;
server {
listen 80;
server_name www.test.com;
location / {
proxy_pass http://127.0.0.1:9001;
Nginx 配置详解
热门推荐
Baimoc
10-24
5万+
Nginx 配置
文章目录Nginx 配置文件结构全局配置events 配置http 配置server 配置Rewrite一、地址重写,地址转发,重定向二、URL 重写语法:使用:三、if 指令使用1、变量匹配2、判断请求的文件是否存在3、判断手机访问4、其他四、防盗链1. 根据请求文件类型实现防盗链配置实列如下:
文件结构
整体结构为嵌套结构:
全局块:配置影响全局,包括运行 nginx 的用户组,进程存放,日志,配置文件等
events:配置影响 nginx 服务器与客户端的网络连接,包括进程最大连接
Nginx全局配置
happy19870612's blog
11-27
2324
一 Nginx配置全局参数
1.1 user: 用来配置worker进程的用户和组。即只有该用户和组才能启动Nginx,默认是nobody,如果忽略组,那么就是该参数指定的用户的组
1.2 worker_processes 1; 工作者进程数量,推荐和CPU核数一致,即如果是4核,可用有4个工作者进程用于处理客户的连接。我们也可以设置成auto,可以自动检测应该设置成多少
1.3 e
Nginx的运用配置(二)http服务器配置
u010209169的博客
12-28
2707
场景二:http服务器
一、配置静态页面
1、直接解压后,在/usr/local/nginx/html/ 下创建个www目录,然后在目录下放一个test.html
2、nginx.conf 中server的配置
http {
server {
#监听端口
listen 80;
#服务名称用于配置域名
server_name localhost;
client_max_body_size 1024
Nginx配置文件nginx.conf详细说明
01-20
在此记录下Nginx服务器nginx.conf的配置文件说明, 部分注释收集与网络.
#运行用户
user www-data;
#启动进程,通常设置成和cpu的数量相等
worker_processes 1;
#全局错误日志及PID文件
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
#工作模式及连接数上限
events {
use epoll; #epoll是多路复用IO(I/O Multiplexing)中的一种方式,但是仅用于linux2.6以上内核,可以大大提高nginx的性能
wor
nginx搭建配置详细说明
03-17
3.1.3. nginx的全局配置 3.2. events配置 3.3. http的配置 3.4. nginx重要指令之location 4. nginx中的rewrite 4.1. 什么是rewrite 4.2. rewrite的命令的作用域和优先级 4.3. if指令 4.3.1. if指令的语法 ...
Nginx配置文件nginx.conf的常用配置方法
01-20
现在经常碰到有新用户问一些很基本的问题,我也没时间一一回答,今天下午花了点时间,结合自己的使用经验,把Nginx的主要配置参数说明 分享一下,也参考了一些网络的内容,这篇是目前最完整的Nginx配置参数中文说明...
Nginx配置文件详细说明
07-27
在此记录下Nginx服务器nginx.conf的配置文件说明, 部分注释收集与网络. #运行用户 user www-data; #启动进程,通常设置成和cpu的数量相等 worker_processes 1; #全局错误日志及PID文件 error_log /var/log/...
nginx配置相关介绍
01-10
#全局错误日志及PID文档 error_log logs/error.log notice; pid logs/Nginx.pid; #工作模式及连接数上限 events { use epoll; worker_connections 1024; } #设定http服务器,利用他的反向代理功能提供负载...
Nginx配置详解&Nginx 中 include 指令使用
最新发布
qq_43842093的博客
04-29
163
Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的。从2004年发布至今,凭借开源的力量,已经接近成熟与完善。Nginx功能丰富,可作为HTTP服务器,也可作为反向代理服务器,邮件服务器。支持FastCGI、SSL、Virtual Host、URL Rewrite、Gzip等功能。并且支持很多第三方的模块扩展。Nginx的稳定性、功能集、示例配置文件和低系统资源的消耗让他后来居上,在全球活跃的网站中有12.18%的使用比率,大约为2220万个网站。
nginx配置之全局配置
运维@小兵的博客
11-13
596
全局配置
user secneo;
worker_processes auto;
pid /run/nginx.pid;
events {
worker_connections 5120;
use epoll;
http
http {
sendfile on;
tcp_nopush on;
tcp_nodela...
Nginx安装及配置文件nginx.conf详解
shenxiaomo1688的博客
04-30
8995
1、安装Nginx
在安装Nginx之前,需确保系统已经安装了gcc、 openssl-devel、 pcre-devel和zlib-devel软件库。
下面是Nginx安装过程:
wget http://nginx.org/download/nginx-1.0.14.tar.gz
tar zxvf nginx-1.0.14.tar.gz
./configure --with-http_st...
nginx配置全局代理
02-06
在 nginx 的配置文件中加入以下内容:
```
http {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://代理服务器地址:端口;
```
然后重启 nginx 服务即可。
如果需要全局代理,需要在http块中配置,如果只需要部分路由代理,可以在location块中配置.
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
老wang你好
CSDN认证博客专家
CSDN认证企业博客
码龄1年
暂无认证
55
原创
100万+
周排名
3万+
总排名
2万+
访问
等级
611
积分
15
粉丝
14
获赞
评论
49
收藏
私信
关注
热门文章
Linux 虚拟化技术 KVM
2657
Linux 服务的restart和reload
2510
基于ubuntu 20.04与cri-docker 搭建部署高可用k8s 1.25.3
1822
nginx的全局配置和HTTP相关配置
1388
高可用集群 Keepalived 所有内容讲解
1207
分类专栏
nginx
3篇
linux
27篇
tomcat
3篇
Linux 虚拟化技术 KVM
1篇
redis
2篇
高可用集群 KEEPALIVED
1篇
微服务
1篇
docker
4篇
firewall和企业级的Open VPN服务
1篇
#jenkins
1篇
ansible
3篇
日常省事
1篇
K8s
5篇
监控
1篇
HAProxy
1篇
Linux cp
1篇
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
最新文章
Jenkins 环境配置到项目开发
Playbook的用法
把Typora图片自动上传网
2023年3篇
2022年54篇
目录
目录
分类专栏
nginx
3篇
linux
27篇
tomcat
3篇
Linux 虚拟化技术 KVM
1篇
redis
2篇
高可用集群 KEEPALIVED
1篇
微服务
1篇
docker
4篇
firewall和企业级的Open VPN服务
1篇
#jenkins
1篇
ansible
3篇
日常省事
1篇
K8s
5篇
监控
1篇
HAProxy
1篇
Linux cp
1篇
目录
评论
被折叠的 条评论
为什么被折叠?
到【灌水乐园】发言
查看更多评论
添加红包
祝福语
请填写红包祝福语或标题
红包数量
红包个数最小为10个
红包总金额
红包金额最低5元
余额支付
当前余额3.43元
前往充值 >
需支付:10.00元
取消
确定
下一步
知道了
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝
规则
hope_wisdom 发出的红包
打赏作者
老wang你好
你的鼓励将是我创作的最大动力
¥2
¥4
¥6
¥10
¥20
输入1-500的整数
余额支付
(余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付
您的余额不足,请更换扫码支付或充值
打赏作者
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。
余额充值