[Linux] PHP程序员玩转Linux系列-nginx初学者引导
2017-04-06 16:23
567 查看
1.PHP程序员玩转Linux系列-怎么安装使用CentOS
2.PHP程序员玩转Linux系列-lnmp环境的搭建
3.PHP程序员玩转Linux系列-搭建FTP代码开发环境
4.PHP程序员玩转Linux系列-备份还原MySQL
5.PHP程序员玩转Linux系列-自动备份与SVN
6.PHP程序员玩转Linux系列-Linux和Windows安装nginx
翻译自官网文档
nginx有一个master进程和很多个worker进程.master进程的主要目的是读取和执行配置文件,维持worker进程.worker进程真正处理请求.nginx基于事件模型和操作系统来分配worker进程,配置文件中的worker进程数一般配置成CPU的内核数.默认的配置文件名是
开始,关闭和重载配置
静态内容服务
打开配置文件,里面已经包含了一个server块的例子
默认的nginx配置文件
在
这个location块指定了
如果这里有很多location指令,nginx会选择最长前缀的.上面的location块提供了一个最短前缀,只有当其他所有的location都没有匹配到,才会使用它.
下一步,增加第二个
当请求以
现在它已经可以作为web服务的配置文件正常工作了,监听80端口.在本地机器输入
当请求的URI不以
应用新的配置,开启nginx或者发送reload信号给nginx的master进程,执行以下命令:
万一有不可预料的错误发生,去
配置简单的反向代理服务
nginx最常用的功能就是作为反向代理服务器,意味着这个服务要接收请求,把请求引到被代理的服务,从那里取回响应,发送给客户端.
我们将配置基本的反向代理服务器,这个服务处理来自本地目录的图片文件的请求,并把其他的所有请求发给代理服务器.在这个例子中,两个服务都会被定义在一个nginx实例中.
首先,定义一个代理服务器,在nginx配置文件中新添加一个
这个简单的服务监听8080端口(之前,我们没有使用过listen指令,因为默认是监听的80端口),映射所有的请求到本地文件系统的
下一步,使用上一步中的服务配合,修改一下作为反向代理服务器配置.在第一个
在第二个location块中,参数是个正则表达式,匹配所有后缀是
配置FastCGI代理服务
nginx可以用作去路由请求到FastCGI服务,这样就可以运行一些各种框架和PHP的应用
最基本的nginx配置,使用
现在就创建了一个服务,这个服务将路由出了静态图片文件之外的所有请求到被代理的服务器.这个被代理的服务器是通过FastCGI协议运行在
2.PHP程序员玩转Linux系列-lnmp环境的搭建
3.PHP程序员玩转Linux系列-搭建FTP代码开发环境
4.PHP程序员玩转Linux系列-备份还原MySQL
5.PHP程序员玩转Linux系列-自动备份与SVN
6.PHP程序员玩转Linux系列-Linux和Windows安装nginx
翻译自官网文档
nginx有一个master进程和很多个worker进程.master进程的主要目的是读取和执行配置文件,维持worker进程.worker进程真正处理请求.nginx基于事件模型和操作系统来分配worker进程,配置文件中的worker进程数一般配置成CPU的内核数.默认的配置文件名是
nginx.conf,目录地址一般在
/usr/local/nginx/conf,
/etc/nginx, 或者
/usr/local/etc/nginx
开始,关闭和重载配置
nginx开启
nginx -s reload重新载入配置文件
nginx -s quit优雅的退出
nginx -s reopen重新打开日志文件
静态内容服务
打开配置文件,里面已经包含了一个server块的例子
http { server { } }
默认的nginx配置文件
nginx.conf里面,使用include指令包含了
/etc/nginx/conf.d/此目录下后缀为
.conf的所有配置文件
http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; include /etc/nginx/conf.d/*.conf; }
在
/etc/nginx/conf.d/目录下,编辑
default.conf文件,通常会有很多的配置文件,每个配置文件中都有一个server块,nginx通过他们监听的端口和server_name来区分,它还会对请求头和server块里面location指令参数比较.
server { location /{ root /var/www/html; } }
这个location块指定了
"/"前缀,比较请求的URI,对于匹配到的URI,这个URI会被拼接到root指令指定路径的后面.换句话说,在本地文件系统中去构成路径,就是去请求
/var/www/html.
如果这里有很多location指令,nginx会选择最长前缀的.上面的location块提供了一个最短前缀,只有当其他所有的location都没有匹配到,才会使用它.
下一步,增加第二个
localtion块
server { location /{ root /var/www/html; } location /images/ { root /data; } }
当请求以
/images/开始,第二个location将会匹配到 (
location /也会匹配到这个请求,但是他的前缀比第二个短)
现在它已经可以作为web服务的配置文件正常工作了,监听80端口.在本地机器输入
http://localhost就可以访问到该服务.当请求URI以
/images/开头,服务器会响应
/data/images目录下的文件.举例:当请求是
http://localhost/images/example.png,nginx会响应
/data/images/example.png文件.如果该文件不存在,nginx会响应404错误.
当请求的URI不以
/images/开头,该请求会被映射到
/var/www/html目录.举例:请求的URI是
http://localhost/some/example.html,nginx会响应
/var/www/html/some/example.html文件.
应用新的配置,开启nginx或者发送reload信号给nginx的master进程,执行以下命令:
nginx -s reload
万一有不可预料的错误发生,去
access.log和
error.log中找原因,这两个文件的目录在
/usr/local/nginx/logs或者
/var/log/nginx
配置简单的反向代理服务
nginx最常用的功能就是作为反向代理服务器,意味着这个服务要接收请求,把请求引到被代理的服务,从那里取回响应,发送给客户端.
我们将配置基本的反向代理服务器,这个服务处理来自本地目录的图片文件的请求,并把其他的所有请求发给代理服务器.在这个例子中,两个服务都会被定义在一个nginx实例中.
首先,定义一个代理服务器,在nginx配置文件中新添加一个
server块,如下:
server {
listen 8080;
root /data/up1;
location /{
}
}
这个简单的服务监听8080端口(之前,我们没有使用过listen指令,因为默认是监听的80端口),映射所有的请求到本地文件系统的
/data/up1目录.创建这个目录,在里面放入
index.html文件.注意root指令放在了
server上下文了.当
location块下没有root指令时,这个root指令将会被使用.
下一步,使用上一步中的服务配合,修改一下作为反向代理服务器配置.在第一个
location块中,添加一个
proxy_pass指令,在参数中指明协议名和代理服务的端口(在本例,它是http://localhost:8080)
server {
location /{
proxy_pass http://localhost:8080; }
location ~\.(gif|jpg|png)$ {
root /data/images;
}
}
在第二个location块中,参数是个正则表达式,匹配所有后缀是
.gif
.jpg或者
.png的请求,使用正则表达式,应该在前面加上
~.符合的请求将会被映射到
/data/images目录下
配置FastCGI代理服务
nginx可以用作去路由请求到FastCGI服务,这样就可以运行一些各种框架和PHP的应用
最基本的nginx配置,使用
fastcgi_pass指令替换
proxy_pass指令,
fastcgi_param指令设置传递给FastCGI服务器的参数.假定FastCGI服务器运行在
localhost:9000.把上一部分中的反向代理配置例子拿过来,修改参数为
localhost:9000.在PHP中,
SCRIPT_FILENAME参数被用作确定脚本名称,
QUERY_STRING被用作传递请求参数,配置如下:
server {
location /{
fastcgi_pass localhost:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
}
location ~\.(gif|jpg|png)$ {
root /data/images;
}
}
现在就创建了一个服务,这个服务将路由出了静态图片文件之外的所有请求到被代理的服务器.这个被代理的服务器是通过FastCGI协议运行在
localhost:9000上的.
相关文章推荐
- PHP程序员玩转Linux系列 nginx初学者引导
- [Linux] PHP程序员玩转Linux系列-Linux和Windows安装nginx
- [Linux] PHP程序员玩转Linux系列-Nginx中的HTTPS
- [Linux] PHP程序员玩转Linux系列-自动备份与SVN
- [Linux] PHP程序员玩转Linux系列-搭建代码开发环境
- [Linux] PHP程序员玩转Linux系列-怎么安装使用
- [Linux] PHP程序员玩转Linux系列-使用supervisor实现守护进程
- [Linux] PHP程序员玩转Linux系列-Ubuntu配置SVN服务器并搭配域名
- [Linux] PHP程序员玩转Linux系列-升级PHP到PHP7
- 在[Linux]下 PHP程序员如何玩转Linux系列-lnmp环境的搭建
- PHP程序员玩转Linux系列 Linux和Windows安装nginx
- [Linux] PHP程序员玩转Linux系列-telnet轻松使用邮箱
- [Linux] PHP程序员玩转Linux系列-腾讯云硬盘扩容挂载
- [Linux] PHP程序员玩转Linux系列-lnmp环境的搭建
- [Linux] PHP程序员玩转Linux系列-备份还原MySQL
- [Linux] PHP程序员玩转Linux系列-自动备份与SVN
- PHP程序员玩转Linux系列 Nginx中的HTTPS详解
- [Linux] PHP程序员玩转Linux系列-升级PHP到PHP7
- SQL Server调优系列玩转篇(如何利用查询提示(Hint)引导语句运行)
- 【nginx系列】linux系统下编译安装nginx