前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Gentoo下安装Nginx+php

Gentoo下安装Nginx+php

作者头像
EltonZheng
发布2021-01-22 07:37:36
4020
发布2021-01-22 07:37:36
举报
文章被收录于专栏:Elton的技术分享博客

使用nginx(engin x)和spawn-fcgi来共同支持php

安装nginx

代码语言:javascript
复制
emerge -av nginx

安装spawn-fcgi

代码语言:javascript
复制
emerge -av spawn-fcgi

启动spawn-fcgi

代码语言:javascript
复制
spawn-fcgi -a 127.0.0.1 -p 9000 -f /usr/bin/php-cgi -C 10

a 表示绑定的ip地址 p 表示端口号 f 表示fcgi的应用程序,在这里是制定php的cgi版本的程序 C 表示spawn的child的个数

执行netstat检查spwan-fcgi是否正常启动,可以看到9000端口是否已经开始监听

代码语言:javascript
复制
netstat -tnpl

配置nginx

编辑nginx.conf文件

代码语言:javascript
复制
user nginx nginx;
worker_processes 8;
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;

error_log /var/log/nginx/error_log info;

#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 51200;

events {
        worker_connections  8192;
        use epoll;
}

http {
        include         /etc/nginx/mime.types;
        default_type    application/octet-stream;

        log_format main
                '$remote_addr - $remote_user [$time_local] '
                '"$request" $status $bytes_sent '
                '"$http_referer" "$http_user_agent" '
                '"$gzip_ratio"';

        client_header_timeout   10m;
        client_body_timeout     10m;
        client_max_body_size 50m; #最大允许上传50M的附件
        send_timeout            10m;

        connection_pool_size            512;
        client_header_buffer_size       8k;
        large_client_header_buffers     4 4k;
        request_pool_size               1024k;

        gzip on;
        gzip_min_length 1k;
        gzip_buffers    4 8k;
        gzip_http_version  1.1;
        gzip_types   text/plain application/x-javascript text/css application/xml;

        output_buffers  1 1024k;
        postpone_output 1460;

        sendfile        on;
        tcp_nopush      on;
        tcp_nodelay     on;

        keepalive_timeout       75 20;
        ignore_invalid_headers  on;
        index index.html;

        include /data/www/vhosts/*.conf;

其中,worker_processes表示worker进程的个数,一般跟CPU个数相同 worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000 表示每个CPU处理一个worker

虚拟主机配置

代码语言:javascript
复制
server {
        index           index.htm index.html index.php
        server_name     blog.domain.com;
        access_log      /var/log/nginx/domain.access_log main;
        error_log       /var/log/nginx/domain.error_log info;
        root            /data/www/domain/htdocs/blog;

        location / {
                if (-f $request_filename/index.html){
                        rewrite (.*) $1/index.html break;
                }

                if (-f $request_filename/index.php){
                        rewrite (.*) $1/index.php;
                }

                if (!-f $request_filename){
                        rewrite (.*) /index.php;
                }
        }

        location ~ .*.php$ {
                include /etc/nginx/fastcgi_params;
                fastcgi_index index.php;
                fastcgi_pass  127.0.0.1:9000;
                fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;        }

         location ~ .(htm|html|gif|jpg|jpeg|png|bmp|ico|css|js)$ {
                expires 30d;
        }
}

上面的配置以wordpress的静态url为例 其中,location ~ .*.php$ 部分是配置php的fcgi expires,是设置静态资源的缓存时间 rewrite部分是设置wordpress静态url时候需要用到的rewrite

Nginx日常维护

Nginx 支持下表中的信号: 信号名 作用描述 TERM, INT 快速关闭程序,中止当前正在处理的请求 QUIT 处理完当前请求后,关闭程序 HUP 重新加载配置,并开启新的工作进程,关闭就的进程,此操作不会中断请求 USR1 重新打开日志文件,用于切换日志,例如每天生成一个新的日志文件 USR2 平滑升级可执行程序 WINCH 从容关闭工作进程

如要重新加载配置文件就使用如下命令

代码语言:javascript
复制
#kill -HUP </pre>
pid是nginx的进称号,通过netstat -tnpl可以查到
### Nginx 监控
通过在配置文件中加入:
location ~ ^/status/ {
	    stub_status on; #Nginx 状态监控配置
	    access_log off;
	 }
就可以使用http://yourdomain.com/stauts监控nginx的状态。
可以看到类似这样的信息
Active connections: 70
server accepts handled requests
 14553819 14553819 19239266
Reading: 0 Writing: 3 Waiting: 67

	active connections – 当前 Nginx 正处理的活动连接数.
	server accepts handled requests -- 总共处理了 14553819 个连接 , 成功创建 14553819 次握手 ( 证明中间没有失败的 ), 总共处理了 19239266 个请求 ( 平均每次握手处理了 1.3 个数据请求 )
	reading -- nginx 读取到客户端的 Header 信息数
	writing -- nginx 返回给客户端的 Header 信息数。
	waiting -- 开启 keep-alive 的情况下,这个值等于 active - (reading + writing),意思就是 Nginx 已经处理完正在等候下一次请求指令的驻留连接。

参考:
http://www.ibm.com/developerworks/cn/web/wa-lo-nginx/index.html
http://wiki.nginx.org/NginxChs
http://blog.chinaunix.net/u/12909/showart_1831422.html

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装nginx
  • 安装spawn-fcgi
  • 启动spawn-fcgi
  • 配置nginx
  • Nginx日常维护
相关产品与服务
网站建设
网站建设(Website Design Service,WDS),是帮助您快速搭建企业网站的服务。通过自助模板建站工具及专业设计服务,无需了解代码技术,即可自由拖拽模块,可视化完成网站管理。全功能管理后台操作方便,一次更新,数据多端同步,省时省心。使用网站建设服务,您无需维持技术和设计师团队,即可快速实现网站上线,达到企业数字化转型的目的。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档