nginx从入门到使用–原理

1.nginx原理
nginx监听80端口,收到相应的请求,根据配置的路由转发规则(conf文件)来转发请求,如果是请求纯静态资源(如HTML、JavaScript、CSS)则去相应的目录拿资源返回给用户;如果是请求动态资源(如PHP、python等),由于Nginx不认识PHP或者python,所以它把PHP或者python转发给CGI,CGI
拿到PHP交给PHP5或者PHP7解析器,PHP5或者PHP7解析器进行相应的解析、查找动态数据、封装HTML给到CGI,
CGI把相应的静态资源给到Nginx,返回给用户。
在这个过程中,有一个非常重要的角色CGI,CGI是什么呢?它是webserver与后端语言(如PHP或者Python等)交互的协议(现在主要用FastCGI等),有了这个协议,开发者可以使用任何语言来处理webserver发来的请求,动态的生成内容。
注意:
Nginx只做静态资源的查找和返回、URL的转发、起服务等。
Apache相比Nginx较重,Nginx是异步的。
PHP不能起服务,且处理高并发的能力不强,所以必须配合Nginx使用,不能单独使用。
nginx本身不能处理PHP,它只是个web服务器,当接收到请求后,如果是php请求,则发给php解释器处理,并把结果返回给客户端。
nginx一般是把请求发fastcgi管理进程处理,fascgi管理进程选择cgi子进程处理结果并返回被nginx。
2.如何使用Nginx呢?
step1.安装编译工具及库文件
> yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
step2.安装PCRE
在目录/home/work下:
> wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.39.tar.gz
> tar –zxvf pcre-8.39.tar.gz
step3.安装Nginx
> wget http://nginx.org/download/nginx-1.11.10.tar.gz
> tar –zxvf nginx-1.11.10.tar.gz
> cd nginx-1.11.10
> ./configure –prefix=/root/.jumbo/nginx –with-pcre=/home/work/pcre-8.39 –with-openssl=/root/.jumbo/bin/openssl
/*
注意:which jumbo 查找Jumbo安装路径:/root/.jumbo/bin/jumbo
注意路径的匹配
*/
> make && make install
> cd /root/.jumbo/nginx
> ./sbin/nginx -c conf/nginx.conf /*启动Nginx*/
/*
如果端口占用,需要先关闭端口:
> netstat -ntpl 查看端口使用情况,关闭80端口
如下图1
2
> kill 26509
配置文件nginx.conf里配置了路由转发
*/
访问页面http://ip/index.html 发现 403forbidden
查看log日志
> tail -f error.log
> *1 open() “/root/.jumbo/nginx/html/index.html” failed (13: Permission denied), client: 10.44.121.93, server: localhost, request: “GET /index.html HTTP/1.1”, host: “*.*.*.*”
发现是权限不够
修改nginx.conf
加上user root;即可
访问页面,看到欢迎页.

此条目发表在PHP分类目录。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。 必填项已用*标注