Nginx和fastcgi分离的实现以及注意问题

简介:

    Nginx和fastcgi分离的实现以及注意问题

  前言,写此文的目的是当时在配置nginx fastcgi分离的时候(即大家所说的动静分离),遇到文件无法解析的情况,现记录如此,希望有对遇到同样情况的朋友有帮助,同时,在此感谢网站运维管理群里的“南昌‖某C”等提供的帮助。

环境

Nginx  192.168.16.254:80

Fastcgi 192.168.16.21:900

Web页面路径放的位置

静态页面放 192.168.16.254:/usr/local/nginx/html/cacti

动态页面放 192.168.16.21:/usr/local/nginx/html/cacti

   提示:当然,为了简单,可以两台服务器的文件放一样的

程序版本

Nginx 1.01

Php 5.3.12

centos6.2

192.168.16.21

修改以下两个参数

listen = 192.168.16.21:9000

listen.allowed_clients = 192.168.16.254

    注意,php-fpm默认是允许any来访问的,除用allowed外,可以通过防火墙来实现

192.168.16.254nginx.conf配置参数如下

user  www www;

worker_processes  1;

error_log  logs/error.log  notice;

pid        logs/nginx.pid;

events 

{

    use epoll;

    worker_connections  1024;

}

http 

{

    include       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"';

    sendfile              on;

    tcp_nopush            on;

    tcp_nodelay           on;

    keepalive_timeout     65;

    client_header_timeout 10;

    client_body_timeout   10;

    send_timeout          10;

    gzip  on;

    gzip_min_length       1k;

    gzip_buffers       4 16k;

    gzip_http_version    1.1;

    gzip_comp_level        2;

    gzip_types  text/plain application/x-javascript text/css applocation/xml;  

upstream backend {

server 192.168.16.21:9000;

}

server

  {

    listen       80;

    server_name  192.168.16.254;

    index index.html index.htm index.php;

    #root  /usr/local/nginx/html/cacti;

    location /

    {

    index index.html index.htm index.php;

    root  /usr/local/nginx/html/cacti;

    }

   location ~ \.php$

   {

   fastcgi_pass  backend;

   fastcgi_index  index.php;

   fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html/cacti$fastcgi_script_name;

   include        fastcgi_params;

   }

    log_format  wwwcacti  '$remote_addr - $remote_user [$time_local] "$request" '

               '$status $body_bytes_sent "$http_referer" '

               '"$http_user_agent" $http_x_forwarded_for';

    access_log  logs/access.log  wwwcacti;

    source_charset      UTF-8;

  }

}

   upstream backend 可以设置多个fastcgi服务器这里除了此配置方法,还有另外一个等效的配置方法,不过只能指定一个fastcgi服务器

   #去掉上面的红色字部分。

   location ~ \.php$

   {

   fastcgi_pass  192.168.16.219000

   fastcgi_index  index.php;

   fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html/cacti$fastcgi_script_name;

   include        fastcgi_params;

   }

  查看web页面目录,目录的位置,和nginx.conflocation配置有关,此处不解释了,可以查看相关资料

查看php-fpm运行情况

查看nginx运行情况

验证php-fpm端口是否能通

访问nginx页面

   可以看到,程序已经成功运行

   注意:如果fastcgi服务器上面没有放webphp页面,在访问php页面的时候,出现以下画面

  (此文的关键之处在此)之所以出现这个情况,原因是fastcgi负责php的解析,当nginx发现访问的文件是.php, 会负责把php文件的解析交给fastcgifastcgi通过正确的解析,返回给nginx,然后提供给客户端。


本文转自it你好 51CTO博客,原文链接:http://blog.51cto.com/itnihao/931490,如需转载请自行联系原作者

相关文章
9kr
|
应用服务中间件 网络安全 nginx
通过宝塔Nginx反代HomeAssistant并添加SSL实现隐藏端口号与域名访问
HomeAssistant默认使用8123端口,带端口访问既不美观也不方便。 通过宝塔Nginx默认反代配置会出现各种意外错误,本文将通过修改HomeAssistant与反代配置解决该问题。
9kr
2960 1
通过宝塔Nginx反代HomeAssistant并添加SSL实现隐藏端口号与域名访问
|
网络协议 NoSQL Java
【宝塔部署SpringBoot前后端不分离项目】含域名访问部署、数据库、反向代理、Nginx等配置
【宝塔部署SpringBoot前后端不分离项目】含域名访问部署、数据库、反向代理、Nginx等配置
1221 0
【宝塔部署SpringBoot前后端不分离项目】含域名访问部署、数据库、反向代理、Nginx等配置
|
存储 Java 应用服务中间件
线程池设计, 从简单的我们平常设计线程池图解,到生活中的类似线程池的处理现实场景, 到简单的C++模拟nginx写的单链表组织工作队列的简单线程池实现 + nginx 部分源码刨析
线程池设计, 从简单的我们平常设计线程池图解,到生活中的类似线程池的处理现实场景, 到简单的C++模拟nginx写的单链表组织工作队列的简单线程池实现 + nginx 部分源码刨析
线程池设计, 从简单的我们平常设计线程池图解,到生活中的类似线程池的处理现实场景, 到简单的C++模拟nginx写的单链表组织工作队列的简单线程池实现 + nginx 部分源码刨析
|
存储 网络协议 Java
内存池组件以及根据nginx内存池源码设计实现简易内存池
内存池组件以及根据nginx内存池源码设计实现简易内存池
内存池组件以及根据nginx内存池源码设计实现简易内存池
|
SQL 负载均衡 应用服务中间件
nginx安装 、分发实现多域名访问同一主机不同端口
nginx安装 、分发实现多域名访问同一主机不同端口
836 0
nginx安装 、分发实现多域名访问同一主机不同端口
|
应用服务中间件 程序员 Linux
CentOS 上部署Nginx实现http301重定向https配置文件conf
CentOS 上部署Nginx实现http301重定向https配置文件conf
325 0
|
监控 数据可视化 应用服务中间件
Nginx系列:用GoAccess实现可视化并实时监控access日志
Nginx系列:用GoAccess实现可视化并实时监控access日志
291 0
Nginx系列:用GoAccess实现可视化并实时监控access日志
|
域名解析 JavaScript 前端开发
Linux安装NodeJs并配合Nginx实现反向代理
Linux安装NodeJs并配合Nginx实现反向代理
320 0
|
负载均衡 网络协议 应用服务中间件
nginx实现负载均衡
nginx实现负载均衡
319 0
nginx实现负载均衡
|
缓存 负载均衡 算法
Nginx实现负载均衡(整合SpringBoot小demo)
Nginx实现负载均衡(整合SpringBoot小demo)
303 4
Nginx实现负载均衡(整合SpringBoot小demo)