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的内核数.默认的配置文件名是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上的.

[Linux] PHP程序员玩转Linux系列-nginx初学者引导的更多相关文章

  1. [Linux] PHP程序员玩转Linux系列-lnmp环境的搭建

    1.PHP程序员玩转Linux系列-怎么安装使用CentOS 在平常的工作中,我作为PHP程序员经常要搭建一下环境,这个环境就是Linux系统下安装nginx,php,mysql这三个软件,对软件进行 ...

  2. [Linux] PHP程序员玩转Linux系列-搭建代码开发环境

    1.PHP程序员玩转Linux系列-怎么安装使用CentOS 2.PHP程序员玩转Linux系列-lnmp环境的搭建 有些同学可能觉得我写的都是啥yum安装的,随便配置一下而已,没啥技术含量,我的目的 ...

  3. [Linux] PHP程序员玩转Linux系列-备份还原MySQL

    1.PHP程序员玩转Linux系列-怎么安装使用CentOS 2.PHP程序员玩转Linux系列-lnmp环境的搭建 3.PHP程序员玩转Linux系列-搭建FTP代码开发环境 前几天有个新闻,说是g ...

  4. [Linux] PHP程序员玩转Linux系列-自动备份与SVN

    我的代码经常在开发修改,为了代码的安全性,比如哪天误删了文件,或者哪天改错东西了,可以恢复回来,我要搞代码备份.备份代码,我先做最简单的,使用linux的定时机制加shell命令打包文件,每天按日期保 ...

  5. [Linux] PHP程序员玩转Linux系列-Linux和Windows安装nginx

    1.PHP程序员玩转Linux系列-怎么安装使用CentOS 2.PHP程序员玩转Linux系列-lnmp环境的搭建 3.PHP程序员玩转Linux系列-搭建FTP代码开发环境 4.PHP程序员玩转L ...

  6. [Linux] PHP程序员玩转Linux系列-Nginx中的HTTPS

    1.PHP程序员玩转Linux系列-怎么安装使用CentOS 2.PHP程序员玩转Linux系列-lnmp环境的搭建 3.PHP程序员玩转Linux系列-搭建FTP代码开发环境 4.PHP程序员玩转L ...

  7. [Linux] PHP程序员玩转Linux系列-使用supervisor实现守护进程

    1.PHP程序员玩转Linux系列-怎么安装使用CentOS 2.PHP程序员玩转Linux系列-lnmp环境的搭建 3.PHP程序员玩转Linux系列-搭建FTP代码开发环境 4.PHP程序员玩转L ...

  8. [Linux] PHP程序员玩转Linux系列-telnet轻松使用邮箱

    1.PHP程序员玩转Linux系列-怎么安装使用CentOS 2.PHP程序员玩转Linux系列-lnmp环境的搭建 3.PHP程序员玩转Linux系列-搭建FTP代码开发环境 4.PHP程序员玩转L ...

  9. [Linux] PHP程序员玩转Linux系列-升级PHP到PHP7

    1.PHP程序员玩转Linux系列-怎么安装使用CentOS 2.PHP程序员玩转Linux系列-lnmp环境的搭建 3.PHP程序员玩转Linux系列-搭建FTP代码开发环境 4.PHP程序员玩转L ...

随机推荐

  1. mongodb 安装到创建用户,认证auth,httpinterface

    今天花了一天时间来解开这个mongodb的谜团,如果有遇到了其他的问题,可以咨询我. #开始 2.6.10安装方式 不同版本后面设置用户权限方式有所差异#下载这个版本的mongodb mongodb- ...

  2. Windows内存管理简介:

    1:连续的内存空间分配: (1)单一连续分配:只能单作业,单任务运行: 分为系统和用户区:用户区是指除了系统需外左右的内存,由于单用户,单任务,要不都被占用,要不全空   (2):固定空间分配:固定分 ...

  3. 第35篇 IIS执行原理

    服务器的监听(IIS6.0+版本) 当请求到达服务器时,请求最终会到达TCPIP.SYS驱动程序,TCPIP.SYS将请求转发给HTTP.SYS网络驱动程序的请求队列中(可以理解为专门处理http请求 ...

  4. 数字化工厂解决方案——OA办公自动化与ERP

    移动办公APP/即时通讯 通过集成手机应用,将移动办公引入到企业信息化管理中,能随时随地的完成审批.查询.警报.知会.公告发布.KPI统计和信息推送.系统已经支持苹果系统.安卓系统和微软WP8系统.企 ...

  5. Git如何检出指定目录或文件

    系统版本:Window 10,Git 版本:2.7.1 对于大型 Git 仓库,每次执行 Git 命令,都需要经过漫长的等待,特别是要经常执行的 git status 命令.下面是一个例子... 从 ...

  6. 前端面试题总结:HTML5,JS,CSS3,兼容性。

    1. 请写出至少20个HTML5标签 <article><aside> <audio><video> <canvas><datalis ...

  7. java基础:数组的拼接

  8. Hibernate二级缓存原理

    缓存:缓存是什么,解决什么问题? 位于速度相差较大的两种硬件/软件之间的,用于协调两者数据传输速度差异的结构,均可称之为缓存Cache.缓存目的:让数据更接近于应用程序,协调速度不匹配,使访问速度更快 ...

  9. 3101: N皇后

    3101: N皇后 Time Limit: 10 Sec  Memory Limit: 128 MBSec  Special JudgeSubmit: 88  Solved: 41[Submit][S ...

  10. html5常用英语单词

    Aabsolute 绝对active 激活的align 对齐alpha 半透明度animation 卡通片绘制auto 自动aside 偏栏 Bbackground 背景bgcolor 背景颜色blo ...