Tang

通过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
 
1
--with-http_iconv_module
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 优化部分
  • 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的转换》

评论