If it is necessary to transmit URI in the unprocessed form then directive proxy_pass should be used without URI part.
这段话的意思是如果你要保持输入的请求原样不变传给后端,那么你的proxy_pass指令就不能带有URI部分。
读起来比较晦涩,尤其是英文长句,举个实际例子:
#结尾不加/
location /abc/ {
proxy_pass http://10.1.12.123:8080;
}
#结尾添加/
location /abc/ {
proxy_pass http://10.1.12.123:8080/;
}
咋一看,这两个配置没什么区别。实际上最主要的区别就是proxy_pass指...
W3tc是一个wordpress速度优化插件,插件的运行需要很多php扩展,其中对html的优化需要用到tidy。
安装tidy库
yum install libtidy libtidy-devel -y
源码编译安装,进入php-fpm的源码路径
cd php-7.3.11/ext/tidy/
编译和安装tidy扩展库
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install
编辑php.ini
[root@VM_0_16_centos tidy]# vi /usr/local/php/etc/php.ini
去掉tidy.so前的分号
;extension=soap
;extension=sockets
;e...
location指令是nginx中最关键的指令之一,location指令的功能是用来匹配不同的url请求,进而对请求做不同的处理和响应,这其中较难理解的是多个location的匹配顺序,本文会作为重点来解释和说明。
开始之前先明确一些约定,我们输入的网址叫做请求URI,nginx用请求URI与location中配置的URI做匹配。
location格式
location有两种格式:
匹配uri类型,有四种参数可选,当然也可以不带参数。
命名location,用@来标识,类似于定义goto语句块。
location [ = | ~ | ~* | ^~ ] uri { ... }locat...
nginx 1.17 已发布,这是 nginx 目前最新的版本,同时也是 mainline 主线版。
我们都知道,nginx 都会同时维护着两个分支,分别为 mainline 主线版和 stable 稳定版。
mainline 是更新活跃的开发分支,其添加了最新功能和错误修复。其版本号的第二位用奇数表示,例如 1.17.0。stable 接收针对高严重性错误的修复,但不会使用最新的功能。其版本号的第二位用偶数表示,例如 1.16.0。
不过在 nginx 中,“稳定”指的是功能和更新频率,它与软件质量无关。稳定分支在其生命周期中从不接收新功能,并且通常仅...
if指令用来判断条件表达式的结果,为true时执行的指令,条件为false时不执行相应的指令,if指令只能用在server、location内。
01
if指令的格式如下:
if (condition) { ... }
condition可以是如下类型:
变量名,如果变量的值是空字符串或者0表示false
变量使用“=”和“!=”来跟字符串比较
可以是正则表达式
检查文件是否存在使用“-f” 和 “!-f”
检查目录是否存在使用 “-d” 和 “!-d”
检查文件、目录、符号链接是否存在使用 “-e” 和 “!-e”
检查是否是可执行文件使用“-x” 和 “!-x”
if...
http的情况系下,我们使用如下办法禁止未授权的域名指向我们的服务器。
server {
listen 80 default_server;
server_name _;
return 444;
}
如何把端口简单改成443,会宝如下错误
[root@VM_0_16_centos conf]# nginx -t
nginx: [emerg] no "ssl_certificate" is defined for the "listen … ssl" directive in /usr/local/nginx/conf/nginx.con...
语法:proxy_pass URL;默认值:—上下文:location, if in location, limit_except
设置被代理的服务器的协议和地址,还可以设置可选的URI。
协议是“http”或者“https”。
地址既可以使用域名或者IP地址加端口(可选)的形式来定义:
proxy_pass http://localhost:8000/uri/;
或使用UNIX域套接字路径来定义。该路径接在“unix”字符串后面,两端由冒号所包围,比如:
proxy_pass http://unix:/tmp/backend.socket:/uri/;
如果解析一个域名得到多个地址,所有的地址都会以轮转的方式被使用。当然,也可...
配置例子
upstream backend {
server backend1.example.com weight=5;
server backend2.example.com:8080;
server unix:/tmp/backend3;
server backup1.example.com:8080 backup;
server backup2.example.com:8080 backup;
}
server {
location / {
proxy_pass http://backend;
}
}
指令
语法:upstream name { ... }默认值:—上下文:http
定义一组服务器。 这些服务器可以监听不同的端口。 而且,监听在TCP和UNIX域套接字的服务器可以混用。
例子:
ups...
nginx是一个轻量级的web服务器,通过RTMP模块可以提供流媒体服务。RTMP没有预编译好的包,需要从源码编译。
安装nginx和RTMP模块
本文在ubuntu环境实现。安装前的编译工具准备:
$ sudo apt-get install build-essential libpcre3 libpcre3-dev libssl-dev
下载nginx源码包:
$ wget http://nginx.org/download/nginx-1.15.1.tar.gz
从git上下载RTMP模块源码:
$ wget https://github.com/sergey-dryabzhinsky/nginx-rtmp-module/archive/dev.zip
解压两个压缩包,进入nginx文件夹:
$ tar -zxvf...
Nginx的块配置
Nginx在逻辑上将提供不同内容的配置划分为块,这些块以层次结构的形式存在(http->server->location)。客户端发出请求时,Nginx收到之后,会有一个确定应该使用哪些配置块来处理请求的过程。本文主要介绍 server 块背后的处理过程。
server块是Nginx配置的子集,它定义用于处理已定义类型请求的虚拟服务器(虚拟机)。管理员通常会配置多个server块,并根据请求的域名,端口和IP地址决定哪个块应该处理哪个连接。
Nginx如何决定哪个server块来处理请求
由于Nginx允许管理员定义多个server块作为单独的虚拟We...