通过OpenResty完成从Apache到Nginx的转换
从Apache转Nginx告一段落,经测试编辑保存的时候服务不会瘫痪了,但还是会报错,保存能够成功,算是一个小小的进步w
另外在配置过程中遇到很多大大小小的问题,还好走过这条路的人有很多,现在把亲测可用的部分记录一下。
仍未解决的问题:
一、伪静态化
查过的方法都不管用,对nginx的配置和运行原理还要进一步理解,才能弄清楚应该怎么写配置文件。
二、性能调优
针对nginx有很多调优手段,暂时没着手查。
Openresty安装
Openresty是一个以Nginx为核心的超高性能服务器,希望能让树莓派的资源使用状况有所改善w
前置
sudo apt-get install libreadline-dev libncurses5-dev libpcre3-dev libssl-dev perl make build-essential
下载,目前版本是1.9.3.1,官有网最新的,替换地址和名字就行了
sudo wget https://openresty.org/download/ngx_openresty-1.9.3.1.tar.gz
安装
sudo tar xzvf ngx_openresty-1.9.3.1.tar.gz cd ngx_openresty-1.9.3.1/ sudo ./configure
1 --prefix=/opt/openresty
1
1 --with-luajit
1
1
1 --without-http_redis2_module
1
1
1 make sudo make install 安装过程耗时很久,耐心等 修改配置文件 sudo nano /opt/openresty/nginx/conf/nginx.conf 找到server,将监听端口和服务器地址改成自己的 listen 自己的端口; server_name 自己的IP; 保存退出 启动服务 sudo /opt/openresty/nginx/sbin/nginx 接下来在浏览器框输入自己的IP,如果出现nginx欢迎信息就成功了 更改nginx根目录地址 nginx和apache的根目录地址不一样,我懒得动了,so我要改配置文件里的根目录地址 继续修改nginx.conf,找到 location / { root html; index index.html index.htm; } 把root后面的地址改为网站所在目录,apache是/var/www,所以我沿用了 禁用Apache sudo service apache2 stop sudo update-rc.d -f apache2 remove 设置PHP解析 php5有了,还要安装php5-fpm sudo apt-get install php5-fpm 修改FPM配置文件 sudo nano /etc/php5/fpm/php-fpm.conf log_level = notice emergency_restart_threshold = 60 emergency_restart_interval = 60s sudo nano /etc/php5/fpm/pool.d/www.conf 优化部分
1 --with-http_iconv_module
- pm=dynamic
- pm.max_children=10
- pm.start_servers=2
- pm.min_spare_servers=1
- pm.max_spare_servers=10
- request_terminate_timeout = 60
修改nginx配置文件
在server找到下面这块
#location ~ .php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
把注释的#号去掉,修改成
root /var/www;
fastcgi_pass
1
unix:/var/run/php5-fpm.sock
;
fastcgi_index index.php;
include fastcgi.conf;
伪静态实现
因为nginx的伪静态不是自动的,针对WordPress要进行配置
保存后重启nginx
sudo /opt/openresty/nginx/sbin/nginx -t && sudo /opt/openresty/nginx/sbin/nginx -s reload
重启树莓派,打开info.php,发现解析用的还是Apache,肯定是哪里不对!用命令查看端口监听,nginx监听的居然是80端口,查了下原来是nginx不能自动改80以外的端口,需要进行修改,既然不能修改为什么在配置文件有Listen这一项OTZ
去掉端口号,再用地址打开网页果然就变成FPM了,所以有可能前面的错误提示是因为没选对解释器
查看端口监听情况
sudo netstat -tunlp
修改监听端口,为什么会放在这个奇葩的位置OTZ
sudo nano /etc/nginx/sites-available/default
把/etc/nginx/sites-available下default的 listen 80 改成其他端口
小问题汇总
运行中遇到的403 Forbbiden问题
经过各种查询没解决,后来重启树莓派解决了,我猜测是php解析程序和Apache与OpenResty之间的什么问题
重启nginx遇到“invalid PID number "" in "/var/run/nginx.pid"”问题
重新绑定nginx和配置文件
sudo /opt/openresty/nginx/sbin/nginx -c /opt/openresty/nginx/conf/nginx.conf
如果提示“ bind() to o.o.o.o:xxx failed”先解除占用再绑定,xxx代表端口号
sudo fuser -k xxx/tcp
就可以重启nginx了w
管理启动项
安装sysv-rc-conf
sudo apt-get install sysv-rc-conf
使用sysv-rc-conf
sudo sysv-rc-conf
参考文献:
阿里云使用心得
centos上apache2转nginx手记
从 Lighttpd 到 OpenResty
OpenResty PHP MySQL WordPress 搭建博客网站(各在不同机器上)
基于 OpenResty 的服务器架构设计
Debian(阿里云)下安装openresty框架
debian 下安装切换apache到nginx,php5-fpm和spawn-cgi运行php
Linux服务管理(关闭或禁用不需要的服务)
OpenResty a fast web app server by extending nginx
CentOS 平台下OpenResty的安装
Debian安装Nginx+php-fpm+mysql+phpmyadmin备忘
【转】关于cgi、FastCGI、php-fpm、php-cgi
nginx重启命令
OpenResty(5)--PHP
把Apache换成Nginx笔记
Ubuntu/Debian下使用rcconf、sysv-rc-conf管理服务
怎么修改监听端口?Linux菜鸟求教
linux搭建WordPress网站很有必要对php-fpm进行优化
记录编译安装Tengine+PHP-FPM运行 WordPress 的过程
Linux上Nginx如何添加多个虚拟主机配置
WordPress|NGINX
解决nginx的The page you are looking for is temporarily unavailable错误办法
LNMP笔记:php-fpm – 启动参数及重要配置详解
linux下WordPress nginx伪静态规则设置
解决LNMP(Nginx)二级目录wordpress网站伪静态问题
码字很辛苦,转载请注明来自空间中的空间的《通过OpenResty完成从Apache到Nginx的转换》
2015-11-24
和谐小本子·专
评论