fastcgi

The Caddy Web Server 常见 Caddyfile 模式

冷暖自知 提交于 2020-07-26 05:09:17
Caddyfile 是 JSON 配置的易用写法,支持通常用的功能,完整功能还是需要 JSON 配置的。 以下适用于 Caddy2 版本的配置。 静态文件服务器 example.com root * /var/ www file_server 通常第一行是站点地址,root 代表站点根路径,* 代表访问所有路径,也可以 匹配其它路径 ,后面跟文件位置,最后开启文件服务器。 反向代理 代理所有请求: example.com reverse_proxy localhost: 5000 代理 /api/ 路径的请求到指定地址,并开启静态文件服务器: example.com root * /var/ www reverse_proxy /api/* localhost:5000 file_server PHP 在运行 PHP FastCGI 的服务下,适用大多数 PHP 应用: example.com root * /var/ www php_fastcgi /blog/* localhost:9000 file_server 自定义站点路径 * 和访问路径 /blog/*,本例假定所有 PHP 请求路径为 /blog/*,其它请求以静态文件服务。 php_fastcgi 实际上是一系列 扩展配置 的简写方式,如果 php_fastcgi 不适用你的站点,请参考扩展配置进行修改。 php

PHP深度解析Nginx下的PHP框架路由实现

风流意气都作罢 提交于 2020-07-25 17:15:58
所有的框架处理业务请求时,都会处理URL的路径部分,分配到指定的代码中去处理。 实现这一功能的关键就是获取$_SERVER全局变量中对于URL部分的数据 当请求的路径为 http:// test.com/article? id=1 http:// test.com/article/update? id=1 支持以上url模式,不需要配置传递PATH_INFO变量,也不需要配置伪静态去除index.php 最简单的nginx配置如下: server { listen 80; server_name test.com; access_log /var/log/nginx/test.com.access.log main; root /home/test; index index.html index.htm index.php; location / { try_files $uri $uri/ /index.php?q=$uri &$args; } location ~ \.php { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }

Nginx配置详解

房东的猫 提交于 2020-07-25 00:48:12
上篇博客简单提了一下Nginx配置文件的大体组成部分,这次来好好解释一下这些个配置文件。 一、main配置段 分类: 正常运行必备的配置 优化性能相关的配置 用于调试及定位问题相关的配置 事件驱动相关的配置 正常 运行必备的配置 : 1、user:定义运行worker进程时用户的身份 Syntax: user user [group];(组名可以省略,如果省略,代表用户所属的基本组) Default: user nobody nobody;(如果不指明,默认为nobody) Context: main(配置在main配置段) 2:pid /PATH/TO/PID_FILE; 指定存储nginx主进程进程号码的文件路径; 3、include file | mask; 指明包含进来的其它配置文件片断; 4、load_module file; 指明要装载的动态模块; 性能优化相关的配置: 1、worker_processes number | auto; worker进程的数量;通常应该为当前主机的cpu的物理核心数;如果此值大于cpu的物理核心数,系统会花费大量的时间来对多余出来的worker进行调度 2、worker_cpu_affinity cpumask ...; worker_cpu_affinity auto [cpumask];(cpumask值cpu掩码)

查看nginx版本号的几种方法

久未见 提交于 2020-07-24 03:30:40
1、 查看服务器上安装的nginx版本号,主要是通过nginx的-v或-V选项,查看方法如下图所示 -v 显示 nginx 的版本。 -V 显示 nginx 的版本,编译器版本和配置参数 [root@zq ~]# nginx -V nginx version: nginx/1.16.1 built by gcc 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) built with OpenSSL 1.0.2k-fips 26 Jan 2017 TLS SNI support enabled configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx

php 中php-fpm工作原理

寵の児 提交于 2020-07-24 02:16:16
1.CGI 是服务器与后台语言交互的协议,有了这个协议,开发者可以使用任何语言处理服务器转发过来的请求,动态地生成内容, 保证了传递过来的数据是标准格式的(规定了以什么样的格式传哪些数据(URL、查询字符串、POST数据、HTTP header等等)),方便了开发者。 2.fastCGI 首先,FastCGI会先启一个master进程,解析配置文件,初始化执行环境,然后再启动多个worker进程。当请求过来时,master会传递给一个worker,然后立即可以接受下一个请求。 这样就避免了重复的劳动,效率自然是高。 而且当worker不够用时,master可以根据配置预先启动几个worker等着。 当然空闲worker太多时,也会停掉一些,这样就提高了性能,也节约了资源。这就是FastCGI的对进程的管理。 3.php-fpm master进程只有一个,负责监听端口,接收来自服务器的请求,而worker进程则一般有多个(具体数量根据实际需要配置),每个进程内部都嵌入了一个PHP解释器,是PHP代码真正执行的地方,下面是我本机上FPM的进程情况:1个master进程,2个worker进程。 从FPM接收到请求,到处理完毕,其具体的流程如下: 1).FPM的master进程接收到请求。 2).master进程根据配置指派特定的worker进程进行请求处理,如果没有可用进程,返回错误

python.exe the fastcgi process exited unexpectedly

心已入冬 提交于 2020-05-27 06:39:08
问题 i have some reasons witch i am stuck to use django on windows machine. i was wondering how to configure django on a windows sesrver 2012 r2 with iis 8.5 . so i followed the tutorial here. i did what the tutorial says and it is pretty much straight forward what i am gonna do for any kind of application i want to run with iis . but i get the following error the fastcgi process exited unexpectedly . here is what i have provided as executable for wfastcgi module: E:\venvs\...\Scripts\python.exe|E

Nginx的location配置规则总结

六月ゝ 毕业季﹏ 提交于 2020-05-09 15:56:15
Nginx几乎是当下绝大多数公司在用的web应用服务,熟悉Nginx的配置,对于我们日常的运维工作是至关重要的,下面就Nginx的location配置进行梳理: 1)location匹配的是nginx的哪个变量? $request_uri 2)location的匹配种类有哪些? 格式:location [ 空格 | = | ~ | ~* | !~ | !~* | @ ] /uri/ {} 解释: = 表示精确匹配,如果找到,立即停止搜索并立即处理此请求。 ~ 表示执行一个正则匹配,区分大小写匹配 ~* 表示执行一个正则匹配,不区分大小写匹配 !~ 区分大小写不匹配 !~* 不区分大小写不匹配 ^~ 即表示只匹配普通字符(空格)。使用前缀匹配,^表示“非”,即不查询正则表达式。如果匹配成功,则不再匹配其他location。 @ 指定一个命名的location,一般只用于内部重定向请求。例如 error_page, try_files / 表示通用匹配,任何请求都会匹配到 ------------------------------------------------------------------------ 对应示例说明: 1)= server { server_name wangshibo.com; location = /abcd { […] } } 匹配情况: http:

一张脑图说清 Nginx 的主流程

a 夏天 提交于 2020-05-09 06:33:01
一张脑图说清 Nginx 的主流程 这个脑图在 nginx-1.14.0-research 上。这是我在研究nginx的http模块的时候画的。基本上把 Nginx 主流程(特别是 HTTP 的部分)的关键函数和关键设置画了下来,了解了这个脑图,就对整个 Nginx 的主流程有了定性的了解了。 Nginx 的启动过程分为两个部分,一个部分是读取配置文件,做配置文件中配置的一些事情(比如监听端口等)。第二个部分是形成 Master-Worker 的多进程模型。这两个过程就是 Nginx 代码中最重要的两个函数: ngx_init_cycle 和 ngx_master_process_cycle ngx_init_cycle ngx_init_cycle 是 Nginx 中最重要的函数,没有之一。我们可以想想,如果我们写一个和 Nginx 一样的 Web 服务,我们会怎么做?我们大致的思路一定是解析配置文件,把配置文件存入到一个数据结构中,然后根据数据结构,进行端口监听。是的,差不多,Nginx 就是这么一个流程。不过 Nginx 里面有个模块的概念,所有的功能都是用模块的方式进行加载的。 Nginx 的模块 Nginx 的模块分为几类,这几类分别为 Core,Event,Conf,Http,Mail。看名字就知道 Core 模块是最重要的。模块是什么意思呢?它包含一堆命令(cmd

Linux CentOS6.5安装Nginx1.8.0

泄露秘密 提交于 2020-05-08 21:09:40
一. 安装nginx 1. 准备1.8.0安装包 nginx-1.8.0.tar.gz 2. 安装第三方依赖 yum install gcc -c++ yum install -y pcre pcre- devel yum install -y zlib zlib- devel yum install -y openssl openssl-devel 3. 解压安装包并进入nginx目录 tar zxf nginx- 1.8 . 0 . tar .gz cd nginx - 1.8 . 0 4. 使用configure命令在nginx目录中创建makeFile文件 ./ configure \ --prefix=/usr/local/ nginx \ --pid-path=/var/run/nginx/ nginx.pid \ --lock-path=/var/lock/ nginx.lock \ --error-log-path=/var/log/nginx/ error.log \ --http-log-path=/var/log/nginx/ access.log \ --with- http_gzip_static_module \ --http-client-body-temp-path=/var/temp/nginx/ client \ --http-proxy

简单了解一下 Nginx

自闭症网瘾萝莉.ら 提交于 2020-05-08 14:23:12
一、Nginx 基本认识 1、Nginx 是什么?   Nginx 是一款开源的、轻量级的、高性能的 HTTP 服务器 以及 反向代理服务器。   特点是 占有内存少、并发能力强。 2、Nginx 用来干什么?   其可以作为一个 HTTP 服务器 进行网站的访问、发布。   也可以作为一个 反向代理服务器 实现负载均衡。 二、正向代理、反向代理 1、什么是代理?   代理本质就相当于一个 中转站,用于处理一个目标到另一个目标。   即两个目标之间并不存在真正的连接,而是通过某个通道 中转。 如下图所示:   客户端 想要访问 真实服务器,需要先经过 代理服务器,通过代理服务器 去访问 真实服务器。   真实服务器响应请求,通过 代理服务器 将请求结果 返回给 客户端。 2、正向代理? (1)什么是正向代理?   正向代理实质指的是 客户端代理,即代理客户端,为客户端接收、发送请求,服务端不知道实际发起请求的是哪个客户端。 如下图所示:   在客户端设置正向代理服务器(IP 地址 + 端口号)。   多个客户端 可以连接同一个代理服务器,通过代理服务器 去 访问真实的服务器。   真实服务器 响应然后通过 代理服务器 将数据返回给 指定的 客户端。   真实服务器并不清楚 其响应的 是哪个 客户端 发送的请求。 (2)正向代理使用场景:   访问国外网站(Google