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,如需转载请自行联系原作者

相关文章
|
负载均衡 安全 前端开发
百度搜索:蓝易云【Nginx与Tomcat负载均衡-动静分离教程】
这些是将Nginx与Tomcat结合使用实现负载均衡和动静分离的基本步骤。根据您的需求和具体环境,可能还需要进行其他配置和调整。请确保在进行任何与网络连接和安全相关的操作之前,详细了解您的网络环境和安全需求,并采取适当的安全措施。
169 1
|
缓存 前端开发 JavaScript
Nginx系列教程(15) - 动静分离概念
Nginx系列教程(15) - 动静分离概念
243 0
|
负载均衡 前端开发 应用服务中间件
【Linux】Nginx安装使用负载均衡及动静分离(前后端项目部署),前端项目打包
【Linux】Nginx安装使用负载均衡及动静分离(前后端项目部署),前端项目打包
1073 0
|
7月前
|
负载均衡 前端开发 应用服务中间件
Tomcat的负载均衡和动静分离(与nginx联动)
总的来说,负载均衡和动静分离是提高Web应用性能的两个重要手段。通过合理的配置和使用,我们可以让Web应用更好地服务于用户。
214 21
|
7月前
|
负载均衡 Java 应用服务中间件
Tomcat与Nginx的负载均衡与动静分离技巧
总的来说,Tomcat和Nginx各有各的优点,在负载均衡和动静分离这两方面它们都有很好的应用。灵活使用这两个工具能够让Web应用具有更好的扩展性和用户体验。
198 14
|
7月前
|
负载均衡 前端开发 JavaScript
LVS-DR模式、keepalived、Nginx与Tomcat合作,打造动静分离,高效负载均衡与高可用性
为了采用这样的架构,你需要对LVS-DR、Keepalived、Nginx与Tomcat有一定的理解和掌握,同时也需要投入一些时间去研究和配置,但是一旦你把它运行起来,你将会发现,这一切都是值得的。
271 11
|
应用服务中间件 nginx
Nginx Location 深入剖析及动静分离简易配置
Nginx Location 深入剖析及动静分离简易配置
204 3
|
Ubuntu 前端开发 JavaScript
技术笔记:Ubuntu:一个部署好的tomcat应用(war包)怎么用Nginx实现动静分离?
技术笔记:Ubuntu:一个部署好的tomcat应用(war包)怎么用Nginx实现动静分离?
|
运维 前端开发 应用服务中间件
LNMP详解(八)——Nginx动静分离实战配置
LNMP详解(八)——Nginx动静分离实战配置
131 1
|
存储 缓存 前端开发
(三)Nginx一网打尽:动静分离、压缩、缓存、黑白名单、跨域、高可用、性能优化...想要的这都有!
早期的业务都是基于单体节点部署,由于前期访问流量不大,因此单体结构也可满足需求,但随着业务增长,流量也越来越大,那么最终单台服务器受到的访问压力也会逐步增高。时间一长,单台服务器性能无法跟上业务增长,就会造成线上频繁宕机的现象发生,最终导致系统瘫痪无法继续处理用户的请求。
477 1