Nginx介绍

2023-11-17

Nginx介绍

是什么?

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)
代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实
上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站
用户有:百度、京东、新浪、网易、腾讯、淘宝等。是由伊戈尔·赛索耶夫为俄罗斯访问量第二的
Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004
年10月4日。

特点

更快:单次请求响应更快,高并发可以更快的处理响应

高拓展性:设计极具扩展性,由多个不同功能、不同层次、不同类型且耦合度极低的模块组成

高可靠性:很多高流量网站都在核心服务器上大规模使用 Nginx

低内存消耗:一般1万个非活跃的 HTTP Keep-Alive 连接在 Nginx 中仅消耗2.5MB内存

高并发:单机支持10万以上的并发连接

热部署:master 管理进程与 worker工作进程的分离设计,使得 Nginx 能够支持热部署

开源协议:使用 BSD 许可协议,免费使用,且可修改源码

应用场景

一、HTTP服务器
Nginx本身也是一个静态资源的服务器,当只有静态资源的时候,就可以使用Nginx来做服务器,如果一个网站只是静态页面的话,那么就可以通过这种方式来实现部署。
二、静态服务器
静态服务器,通常会提供一个上传的功能,其他应用如果需要静态资源就从该静态服务器中获取
三、反向代理
在这里插入图片描述

反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。
四、负载均衡
负载均衡也是Nginx常用的一个功能,负载均衡其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。

简单而言就是当有2台或以上服务器时,根据规则随机的将请求分发到指定的服务器上处理,负载均衡配置一般都需要同时配置反向代理,通过反向代理跳转到负载均衡。而Nginx目前支持自带3种负载均衡策略,还有2种常用的第三方策略。

负载均衡通过upstream指令来实现。
五、动静分离
在这里插入图片描述

动静分离是让动态网站里的动态网页根据一定规则把不变的资源和经常变的资源区分开来,动静资源做好了拆分以后,我们就可以根据静态资源的特点将其做缓存操作,这就是网站静态化处理的核心思路。

Nginx原理

nginx目录介绍

在这里插入图片描述

基本运行原理

在这里插入图片描述

Master进程: 读取并验证配置文件nginx.conf;管理worker进程。

Worker进程: 每个worker进程都维护一个线程(避免线程切换),处理连接和请求;注意worker进程的个数由配置文件决定,一般和cpu个数相关,配置几个就有几个worker进程

注意:
1)nginx怎么做到热部署的?
执行命令 ./sbin/nginx -s reload

修改配置文件nginx.conf后,重新生成新的worker进程,当然会以新的配置处理请求,而且新的请求必须交给新的worker进程,至于老的worker进程,等把以前的请求处理完成以后,kill掉就行了。

2) nginx如何做到高并发下高效处理
nginx采用linux的epoll模型,epoll模型基于事件驱动机制,可以监控多个事件是否准备完毕,如果可以,就放入epoll队列,这个过程是异步的。worker进程只需要从epoll队列循环处理即可。

3)什么是epoll

epoll接口是为解决Linux内核处理大量文件描述符而提出的方案。该接口属于Linux下多路I/O复用接口中select/poll的增强。其经常应用于Linux下高并发服务型程序,特别是在大量并发连接中只有少部分连接处于活跃下的情况 (通常是这种情况),在该情况下能显著的提高程序的CPU利用率。下图是epoll调用过程

在这里插入图片描述

Nginx最小配置解析


worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  localhost;
        location / {
            root   html;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }


}

1)worker_processes 1; 默认为1,表示开启一个业务进程

2)worker_connections 1024; 单个业务进程可接受连接数

3)include mime.types; 引入http mime类型
告诉浏览器怎么渲染nginx返回的数据
在这里插入图片描述

4) default_type application/octet-stream; 如果mime类型没匹配上,默认使用二进制流的方式传输。

5)sendfile on; 使用linux的 sendfile(socket, file, len) 高效网络传输,也就是数据0拷贝。

6)keepalive_timeout 65;
保持连接的超时时间

7) server 模块 虚拟主机 vhost

  • listen 80; 当前主机监控端口
  • server_name localhost; 当前主机的域名
  •  location / {   //指定是uri 
        root   html;//相对路径 
        index  index.html index.htm;
    }
    
  •   error_page   500 502 503 504  /50x.html;//错误页
    
  •    location = /50x.html { 
          root   html;
      }
    
虚拟主机与域名解析

1)虚拟主机:原本一台服务器只能对应一个站点,通过虚拟主机技术可以虚拟化成多个站点同时对外提供服务

2)域名解析:将域名解析成服务器的ip

3)servername匹配规则

  • 完整匹配 同一servername中匹配多个域名
  • 通配符匹配
  • 通配符结束匹配
  • 正则匹配
反向代理
网关 正向代理 反向代理

网关:一个网络到另一个网络的关口,将不通网络间进行访问控制,转换,交接等
正向代理:用户利用代理服务器访问目标服务器。代理服务器的代理对象是用户。简单的说可以让我们访问我们不能直接访问的资源服务

在这里插入图片描述
反向代理:代理对象是服务器,服务端使用代理服务器为用户提供服务
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

简单配置
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

负载均衡

策略
默认轮询
轮询
在这里插入图片描述

权重
权重越高分配到需要处理的请求越多。 此策略可以与least_conn和ip_hash结合使用。
此策略比较适合服务器的硬件配置差别比较大的情况。
在这里插入图片描述

down :表示这个机器不参与负载均衡,已下线
在这里插入图片描述

backup :表示这台机器作为备用,其他的都挂掉之后,这个会起作用

在这里插入图片描述

ip_hash
负载均衡器按照客户端IP地址的分配方式,可以确保相同客户端的请求一直发送到相同的服务器。这样每个访客都固定访问一个后端服务器。

upstream foo {
    ip_hash;
    server localhost:8001 weight=2;
    server localhost:8002;
    server localhost:8003 down;
    server localhost:8004 max_fails=3 fail_timeout=20s;
}

注意:
在nginx版本1.3.1之前,不能在ip_hash中使用权重(weight)。 ip_hash不能与backup同时使用。
此策略适合有状态服务,比如session。 当有服务器需要剔除,必须手动down掉。

least_conn
把请求转发给连接数较少的后端服务器。轮询算法是把请求平均的转发给各个后端,使它们的负载大致相同;但是,有些请求占用的时间很长,会导致其所在的后端负载较高。这种情况下,least_conn这种方式就可以达到更好的负载均衡效果

upstream foo {
    least_conn;
    server localhost:8001 weight=2;
    server localhost:8002;
    server localhost:8003 backup;
    server localhost:8004 max_fails=3 fail_timeout=20s;
}

注意:
此负载均衡策略适合请求处理时间长短不一造成服务器过载的情况。 除了上面这些调度策略之后,还有一些第三方的调度策略可以集成到nginx中。

在实际运用中,需要根据不同的场景选择不同的策略,大多是多种策略结合使用以达到实际需求的性能。

下面两种均衡策略是第三方策略,第三方的负载均衡策略的实现需要安装第三方插件。

url_hash
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,要配合缓存命中来使用。同一个资源多次请求,可能会到达不同的服务器上,导致不必要的多次下载,缓存命中率不高,以及一些资源时间的浪费。而使用url_hash,可以使得同一个url(也就是同一个资源请求)会到达同一台服务器,一旦缓存住了资源,再此收到请求,就可以从缓存中读取。

  #动态服务器组
  upstream dynamic_zuoyu {
    hash $request_uri;  #实现每个url定向到同一个后端服务器
    server localhost:8080; #tomcat 7.0
    server localhost:8081; #tomcat 8.0
    server localhost:8082; #tomcat 8.5
    server localhost:8083; #tomcat 9.0
  }

fair
按照服务器端的响应时间来分配请求,响应时间短的优先分配。

  #动态服务器组
  upstream dynamic_zuoyu {
    server localhost:8080; #tomcat 7.0
    server localhost:8081; #tomcat 8.0
    server localhost:8082; #tomcat 8.5
    server localhost:8083; #tomcat 9.0
    fair;  #实现响应时间短的优先分配
  }
动静分离

动静分离是指在web服务器架构中,将静态页面与动态页面或者静态内容接口和动态内容接口分开不同系统访问的架构设计方法,进而提升整个服务访问性能和可维护性。

简单点来说,就是用户在请求的时候,如果只是简单的访问图片,html等静态的请求时,nginx直接返回,如果是发送动态请求时候,需要程序进行就由nginx把请求发送给程序,进行动态处理。

#拦截静态请求
location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|js|css)$ {
    root /usr/local/data;
}

下面解析一下上述配置中的匹配规则:

~:表示匹配时区分大小写。

.:. 表示匹配除换行符 \n 之外的任何单字符, 表示零次或多次,所以 .* 表示任意字符出现零次或多次。

.:表示匹配字符 .。

urlRewrite

rewrite的组要功能是实现RUL地址的重定向。Nginx的rewrite功能需要PCRE软件的支持,即通过perl兼容正则表达式语句进行规则匹配的。默认参数编译nginx就会支持rewrite的模块,但是也必须要PCRE的支持
rewrite是实现URL重写的关键指令,根据regex (正则表达式)部分内容,重定向到replacement,结尾是flag标记。

语法: rewrite [flag];
flag标记说明:
last #本条规则匹配完成后,继续向下匹配新的location URI规则
break #本条规则匹配完成即终止,不再匹配后面的任何规则
redirect #返回302临时重定向,浏览器地址会显示跳转后的URL地址
permanent #返回301永久重定向,浏览器地址栏会显示跳转后的URL地址

需求 前端输入 http://ip/2.html 跳转到 http://ip/index.php?pageNum=2

在这里插入图片描述
在这里插入图片描述

防盗链

两个网站 A 和 B, B网站引用了A网站上的图片,这种行为就叫做盗链。 防盗链,就是要防止B引用A的图片
HTTP Referer是Header的一部分,当浏览器向Web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的,服务器借此可以获得一些信息用于处理,例如防止未经允许的网站盗链图片、文件等。因此HTTP Referer头信息是可以通过程序来伪装生成的,所以通过Referer信息防盗链并非100%可靠,但是,它能够限制大部分的盗链情况。
假设网站域名是 www.yy100.com。

location ~* .(gif|png|jpg|bmp|swf|flv)$ {
    valid_referers none blocked www.php100.com php100.com;
    if ($invalid_referer) {
            return 403;
    }
}

以上的例子可以实现扩展名为 gif,png,jpg,bmp,swf,flv的url防止被盗链

Nginx高可用

Keepalived软件起初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP (Virtual Router Redundancy Protocol ,虚拟路由器冗余协议)功能。因此,Keepalived除了能够管理LVS软件外,还可以作为其他服务(例如:Nginx、Haproxy、MySQL等)的高可用解决方案软件。

故障转移机制
Keepalived高可用服务之间的故障切换转移,是通过VRRP 来实现的。
在 Keepalived服务正常工作时,主 Master节点会不断地向备节点发送(多播的方式)心跳消息,用以告诉备Backup节点自己还活着,当主 Master节点发生故障时,就无法发送心跳消息,备节点也就因此无法继续检测到来自主 Master节点的心跳了,于是调用自身的接管程序,接管主Master节点的 IP资源及服务。而当主 Master节点恢复时,备Backup节点又会释放主节点故障时自身接管的IP资源及服务,恢复到原来的备用角色。

VRRP协议与工作原理
在现实的网络环境中。主机之间的通信都是通过配置静态路由或者(默认网关)来完成的,而主机之间的路由器一旦发生故障,通信就会失效,因此这种通信模式当中,路由器就成了一个单点瓶颈,为了解决这个问题,就引入了VRRP协议。

VRRP协议是一种容错的主备模式的协议,保证当主机的下一跳路由出现故障时,由另一台路由器来代替出现故障的路由器进行工作,通过VRRP可以在网络发生故障时透明的进行设备切换而不影响主机之间的数据通信。

Keepalvied的工作原理
Keepalived对服务器运行状态和故障隔离的工作原理:
Keepalived工作在TCP/IP参考模型的三层、四层、五层(物理层,链路层):
网络层(3):Keepalived通过ICMP协议向服务器集群中的每一个节点发送一个ICMP数据包(有点类似与Ping的功能),如果某个节点没有返回响应数据包,那么认为该节点发生了故障,Keepalived将报告这个节点失效,并从服务器集群中剔除故障节点。

传输层(4):Keepalived在传输层里利用了TCP协议的端口连接和扫描技术来判断集群节点的端口是否正常,比如对于常见的WEB服务器80端口。或者SSH服务22端口,Keepalived一旦在传输层探测到这些端口号没有数据响应和数据返回,就认为这些端口发生异常,然后强制将这些端口所对应的节点从服务器集群中剔除掉。

应用层(5):,Keepalived的运行方式也更加全面化和复杂化,用户可以通过自定义Keepalived工作方式,例如:可以通过编写程序或者脚本来运行Keepalived,而Keepalived将根据用户的设定参数检测各种程序或者服务是否允许正常,如果Keepalived的检测结果和用户设定的不一致时,Keepalived将把对应的服务器从服务器集群中剔除。

keepalived.conf:
主机配置

#检测脚本
vrrp_script chk_http_port {
    script "/usr/local/src/check_nginx_pid.sh" #心跳执行的脚本,检测nginx是否启动
    interval 2                          #(检测脚本执行的间隔,单位是秒)
    weight 2                            #权重
}
#vrrp 实例定义部分
vrrp_instance VI_1 {
    state MASTER            # 指定keepalived的角色,MASTER为主,BACKUP为备
    interface enp0s3# 当前进行vrrp通讯的网络接口卡(当前centos的网卡) 用ip addr查看你具体的网卡
    virtual_router_id 66    # 虚拟路由编号,主从要一直
    priority 100            # 优先级,数值越大,获取处理请求的优先级越高
    advert_int 1            # 检查间隔,默认为1s(vrrp组播周期秒数)
    #授权访问
    authentication {
        auth_type PASS #设置验证类型和密码,MASTER和BACKUP必须使用相同的密码才能正常通信
        auth_pass 1111
    }
    track_script {
        chk_http_port            #(调用检测脚本)
    }
    virtual_ipaddress {
        192.168.0.127           # 定义虚拟ip(VIP),可多设,每行一个
    }
}

virtual_ipaddress 里面可以配置vip,在线上通过vip来访问服务。

interface需要根据服务器网卡进行设置通常查看方式ip addr

authentication配置授权访问后备机也需要相同配置

备机配置

#检测脚本
vrrp_script chk_http_port {
    script "/usr/local/src/check_nginx_pid.sh" #心跳执行的脚本,检测nginx是否启动
    interval 2                          #(检测脚本执行的间隔)
    weight 2                            #权重
}
#vrrp 实例定义部分
vrrp_instance VI_1 {
    state BACKUP                        # 指定keepalived的角色,MASTER为主,BACKUP为备
    interface ens33                      # 当前进行vrrp通讯的网络接口卡(当前centos的网卡) 用ip  addr查看你具体的网卡
    virtual_router_id 66                # 虚拟路由编号,主从要一直
    priority 99                         # 优先级,数值越大,获取处理请求的优先级越高
    advert_int 1                        # 检查间隔,默认为1s(vrrp组播周期秒数)
    #授权访问
    authentication {
        auth_type PASS #设置验证类型和密码,MASTER和BACKUP必须使用相同的密码才能正常通信
        auth_pass 1111
    }
    track_script {
        chk_http_port                   #(调用检测脚本)
    }
    virtual_ipaddress {
        192.168.0.127                   # 定义虚拟ip(VIP),可多设,每行一个
    }
}

检测j脚本

#!/bin/bash
#检测nginx是否启动了
A=`ps -C nginx --no-header |wc -l`        
if [ $A -eq 0 ];then    #如果nginx没有启动就启动nginx                        
      systemctl start nginx                #重启nginx
      if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then    #nginx重启失败,则停掉keepalived服务,进行VIP转移
              killall keepalived                    
      fi
fi

Nginx配置Https
  1. 准备https证书
  2. Nginx的ssl模块安装
    进入 nginx 解压目录:
    在这里插入图片描述
    执行:
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

然后编译,切记不要执行make install,否则会重新安装nginx

make

上述操作执行完成以后,你的目录下会出现objs文件夹,文件夹内存在nginx文件,如图
在这里插入图片描述

将此目录的 nginx 文件 替换安装目录sbin下的nginx

cp  /usr/local/nginx-1.21.6/objs/nginx /usr/local/nginx/sbin/

查看是否安装成功

/usr/local/nginx/sbin/nginx -V  

表示安装成功
在这里插入图片描述

注意:

./configure: error: SSL modules require the OpenSSL library.
You can either do not enable the modules, or install the OpenSSL library
into the system, or build the OpenSSL library statically from the source
with nginx by using --with-openssl=<path> option.

解决:yum -y install openssl openssl-devel

  1. 配置 ssl证书
    在Nginx的安装目录下创建cert目录,并且将“server.key”和“server.crt”拷贝到nginx的“card”目录下。

在nginx 安装目录下配置 nginx.conf 文件

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
  server {
  #监听443端口
    listen 443;
    #你的域名
    server_name huddd.top;
    ssl on;
    #ssl证书的pem文件路径
    ssl_certificate  /root/card/huiblog.top.pem;
    #ssl证书的key文件路径
    ssl_certificate_key /root/card/huiblog.top.key;
    location / {
     proxy_pass  http://公网地址:项目端口号;
    }
}
server {
    listen 80;
    server_name huiblog.top;
    #将请求转成https
    rewrite ^(.*)$ https://$host$1 permanent;
}
}

在这里插入图片描述

检验配置是否准群

./sbin/ningx -t
  1. 重启
    ./sbin/nginx -s reload
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Nginx介绍 的相关文章

  • NGinx 域名重定向

    假设我有一个名为 xyz co 的网站 我还有其他具有相同前缀的域名 例如 xyz com xyz it xyz co it 现在 nginx 与端口 80 的 nginx conf 中的 server name xyz co 配合得很好
  • Nginx - 自定义 404 页面

    Nginx PHP 在 fastCGI 上 对我来说非常有用 当我输入不存在的 PHP 文件的路径时 我不会得到默认的 404 错误页面 任何无效的 html 文件都会出现该错误页面 而只会得到 未指定输入文件 如何自定义此 404 错误页
  • Docker:Nginx 和 php5-fpm docker 不说话

    我想进行完全 Docker 化的 Drupal 安装 我的第一步是让容器与 Nginx 和 php5 fpm 一起运行 两者都基于 Debian 我在 CoreOS alpha 频道 使用 Digital Ocean 我的 Dockerfi
  • WebSockets 监听 UNIX 域套接字?

    是否可以在 nginx 服务器后面设置一个 WebSockets 服务器来处理 UNIX 域套接字上的连接 我目前在同一台计算机上有多个 WebSocket 服务器实例 并且存在端口共享问题 所有实例都必须分配一个唯一的端口 我想避免这种情
  • nginx 匹配位置中的特定单词

    我在匹配 nginx request body 变量中的特定单词时遇到问题 如果正文请求中有特殊单词 我想代理传递 所以我的方法是这样的 location php if request body proxy pass http test p
  • 如何在运行 NGINX Docker 容器的 AWS EC2 上启用 HTTPS?

    我在 AWS 上有一个运行 Amazon Linux 2 的 EC2 实例 在上面 我安装了 Git docker 和 docker compose 完成后 我克隆了我的存储库并运行docker compose up让我的生产环境启动 我访
  • NGINX hashbang 重写

    我想知道 hashbang url 的位置或重写 nginx 指令会是什么样子 基本上像前端控制器一样通过 hashbang 路由所有非 hashbanged url 所以 http example com about staff 将路由至
  • 将应用程序级别用户名/用户 ID 注入 nginx/Apache 日志

    有没有办法将应用程序级别的用户名或 id 在本例中为 django 用户名或 id 注入 Apache 或 ngnix 日志中 请注意 我不是询问 HTTP 身份验证用户名 我目前正在使用一个简短的自定义中间件将此数据添加到响应标头 如下所
  • 将代码从 htaccess 重写为 nginx 配置?

    我在将 htaccess 文件中的重写代码实现到 nginx 配置中时遇到问题 我已经尝试过生成器 http winnginx com htaccess http winginx com htaccess用于生成我的重写 代码 我的ngin
  • Nginx 是否也缓冲来自客户端的 http 请求?

    我知道 Nginx 可以缓冲来自上游服务器的响应 我的问题是 Nginx 是否也缓冲来自客户端的 http 请求 我的意思是 如果 Nginx 从客户端收到 http 请求 它是否立即与上游服务器建立连接 或者它会在收到整个http请求后创
  • NGINX 上的 SSL 终止

    我已经购买了 SSL 证书 并在验证模数时正确地将其捆绑在一起 即https kb wisc edu middleware 4064 https kb wisc edu middleware 4064 那么哈希值是相同的 我已将证书和密钥移
  • 如何使用gunicorn和bokeh服务配置Nginx

    我想提供一个 Flask 应用程序 该应用程序使用本地网络服务器上的嵌入式散景服务 为了说明这一点 我使用了一个例子散景服务示例 https github com bokeh bokeh blob 0 12 11 examples howt
  • Nginx docker容器代理传递到另一个端口

    我想在 docker 容器中运行 Nginx 它监听端口 80 并且当 url 以 word 开头时 我希望它 proxy pass 到端口 8080api 我有一些网络应用程序侦听端口 8080 这在没有 docker 的情况下对我来说一
  • 使用查询参数值进行 NGINX 301 重定向

    我想重定向example com lang en to example com en 我正在使用 Python Django 我的服务器运行 Plesk Nginx 我尝试像这样在我的网页上重定向 但这是行不通的 rewrite lang
  • nginx + php-fpm = 找不到文件

    当我尝试访问时info php我得到一个File not found error 我尝试了一些教程但无济于事 配置 默认 server listen 80 listen 80 default ipv6only on server name
  • uWSGI nginx 错误:连接到上游时 connect() 失败(111:连接被拒绝)

    我在 nginx 上访问我的 IP 时遇到 502 网关错误 http 52 xx xx xx http 52 xx xx xx 日志只是这样说的 2015 09 18 13 03 37 错误 32636 0 1 连接到上游时失败 111
  • 如何对 nginx ingress 中的特定 HTTP 方法进行基本身份验证?

    我可以使用基本身份验证创建入口 我遵循 kubernetes ingress nginx 中的模板 apiVersion extensions v1beta1 kind Ingress metadata name ingress with
  • 我的 s3 存储桶如何使用 nginx 在不同文件夹中托管多个网站?

    我在 Amazon 上有一个 s3 Cloudfront 解决方案 我想在存储桶内的不同文件夹中托管不同的网站 并通过以下两种方式之一访问它们 子域 gt mywebsite1 mydomain com 或者 路径 gt www mydom
  • nginx/mono 2.8 上的 ASP.Net MVC 2

    我正在尝试在 Linux 环境上设置 ASP Net MVC 2 应用程序 我在 VirtualBox 上安装了 Ubuntu 10 10 然后从源安装了 Mono 2 8 之后我安装了 nginx 并按照建议进行配置here http w
  • 对于较大的请求正文,Nginx proxy_cache_key $request_body 将被忽略

    我使用 nginx 作为反向代理 我希望它能够缓存 POST 请求 我的后端已正确配置为为 POST 请求返回适当的缓存控制标头 在 nginx 中我配置了 proxy cache methods POST proxy cache key

随机推荐

  • [HackTheBox]WEB题目

    0x01 50 Points I know Mag1k 问题描述 Can you get to the profile page of the admin 访问分配的地址 是一个带注册的登入页面 尝试常规注入 无效 来到注册页面注册 再退出
  • Springboot 实现发送邮件功能,使用QQ邮箱

    引入依赖
  • 若依分离版 --- 设置多数据源(主mysql,从sqlserver)

    主库mysql 从库sqlserver 1 修改application druid yml配置 配至slave 修改validationQuery SELECT 1 要不然sqlserver会报错 下面是完整的配置 可直接使用 根据自己情况
  • 朴素贝叶斯与KNN算法

    朴素贝叶斯算法 数学基础 我们先举一个例子 投硬币是一个随机过程 我们不能预测任意一次投币结果是正面还是反面 我们只能谈论其下一次结果是正面或者反面的概率 如果容貌取得一些额外的数据 如硬币的精准成分 硬币的最初位置 投币的力量与方向 硬币
  • springmvc+mybatis+mysql+log4j.xml+logjdbc+maven聚合+nexus+dubbo demo骨架

    说明 该项目采用maven聚合工程 项目骨架是我们以前架构师搭建骨架 现在已经拆分出来供大家下载使用 可以扩展使用 里面用到技术有springmvc mybatis mysql log4j xml logjdbc maven nexus d
  • java项目整合linux上的redis

    在linux上部署redis 1 在linux上安装redis 先下载redis 下载网址为 https redis io 放到 usr local src目录下 使用命令解压tar xzvf redis tar gz 进入redis目录
  • OWASP Dependency-Check工具集成

    OWASP Dependency Check工具集成 SonarQube 插件不执行分析 而是读取现有的 Dependency Check 报告 先要通过Jenkins插件去执行扫描 然后sonar里面再分析报告 一 搭建本地NVD Mir
  • 解决新版edge浏览器首页被搜狗、haoqq等垃圾搜索引擎捆绑问题,并将启动首页设为edge自带新标签页

    最近想试一下edge浏览器 发现每次启动都是这个haoqq com 这是主页被恶意挟持了 经过不懈努力终于给他关闭了 edge真香 解决步骤 1 打开电脑管家 或火绒软件 找到浏览器保护 电脑管家是在工具箱里 火绒的话在防护中心 系统防护
  • Verilog:【1】时钟分频电路(clk_divider.sv)

    碎碎念 作为Basic Verilog的第一个学习笔记 打算用这种命名方式来对博客进行命名 应该有助于检索 简单阅览了部分工程的代码 发现里面有很多嵌套关系 因此决定先从基础模块开始 也是为了整个博客内容的流畅性 读者朋友有问题的话 也可以
  • java robot截图报错_robot framework笔记(介绍+基础关键字)

    robot framework库 Builtin 提供了一组通常需要的通用关键字 String 生成 修改和验证字符串的库 Screenshot 提供关键字捕捉桌面截图 XML 生成 修改和验证xml文件的库 DateTime 日期和时间转
  • 腾讯mini项目-【指标监控服务重构】2023-08-13

    今日已办 使用watermill框架替代当前的base runner框架 a 参考官方提供的sarama kafka Pub Sub https github com ThreeDotsLabs watermill kafka 实现kafk
  • node-sass与node版本不匹配问题解决方法

    Node和node sass的版本存在绑定关系 关系对照表如下 如果版本不匹配 比如在node16上面安装node sass 4 x 那么就可能会报以下错误 此时如果没有别的项目受影响 最好是将node的版本降低一下 咨询朋友说最好是降级n
  • Java线程:线程的调度-休眠

    本文转载至 http lavasoft blog 51cto com 62575 221790 Java线程 线程的调度 休眠 Java线程调度是Java多线程的核心 只有良好的调度 才能充分发挥系统的性能 提高程序的执行效率 这里要明确的
  • Linux 面试题

    一 填空题 1 在Linux系统中 以 文件 方式访问设备 2 Linux内核引导时 从文件 etc fstab 中读取要加载的文件系统 3 Linux文件系统中每个文件用 i节点 来标识 4 全部磁盘块由四个部分组成 分别为引导块 专用块
  • 给WPF的DataGrid添加行号的方法(在XAML中添加,不是添加到行最前面那种)

  • 主机入侵检测系统wazuh3.13单机部署

    Wazuh涉及两个主要组件的安装 Wazuh服务器和Elastic Stack 此外 Wazuh agent需要部署到受监视的主机上 Wazuh server 运行Wazuh管理器和API 它从已部署的代理收集和分析数据 Elastic S
  • Mac brew安装mysql之后无法启动mysql

    使用Mac brew装完mysql之后 连接mysql报错 songdeMacBook Pro mysql song mysql uroot p Enter password ERROR 2002 HY000 Can t connect t
  • Linux之硬链接和软链接

    硬链接 1 包含在目录中的一个文件名就是一个文件的硬链接 或简称链接 Link 在同一目录或者不同目录中 同一个文件可以有好几个链接 对应好几个文件名 创建链接的命令 ln P1 P2 用来创建一个新的硬链接 即为由路径P1标识的文件创建一
  • 推荐几个UI/UX设计师常用软件和网站

    网站 Dribbble dribbble com Dribble是一个面向创作家 艺术工作者 设计师等创意类作品的人群 提供作品在线服务 供网友在线查看已经完成的作品或者正在创作的作品的交流网站 Dribbble还针对手机推出了相应的软件
  • Nginx介绍

    Nginx介绍 是什么 Nginx是一款轻量级的Web 服务器 反向代理服务器及电子邮件 IMAP POP3 代理服务器 在BSD like 协议下发行 其特点是占有内存少 并发能力强 事实 上nginx的并发能力在同类型的网页服务器中表现