虚拟机VirtualBox中安装Centos7并配置Nginx

需要注意的点:

  1. 让虚拟机能访问外网,需要配置网络,使用NAT配置
  2. centos7 中查看IP的命令: ip addr
  3. centos7 中默认的防火墙不是iptables,而是firewalle,关闭方式: systemctl mask firewalld
  4. 安装Nginx前,要先安装EPEL库: sudo yum install epel-release

【参考】

  1. 虚拟机网络配置:https://www.jianshu.com/p/3585fecbfd4b
  2. 关闭防火墙:https://www.cnblogs.com/kreo/p/4368811.html
  3. 安装Nginx:https://blog.csdn.net/u011138533/article/details/53162499

wordpress文章链接使用文章名固定链接

nginx的conf 配置:

【参考:https://codex.wordpress.org/Nginx】

使用瓦力发布系统结合opcache时代码未及时更新的问题

现象:web服务器用的是nginx;为了提升性能,开启了opcache缓存功能;项目发布用的是瓦力发布工具;同时存在多台web服务器。发布新功能后,部分功能在部分web机器上出现未及时更新的现象。

处理:

fastcgi_param指令指定php程序主目录由$document_root变更为$realpath_root

初学nginx踩过的坑

1.除了安装nginx外,还要安装php-fpm。(同时,除了启动nginx外,还要启动php-fpm)

2.启动nginx和启动php-fpm使用的用户和用户组要一致,(可通过 ps aux|grep nginx , ps aux|grep php-fpm查看,如下图都是以nginx用户和用户组启动服务)如果不一致,可通过修改两者的conf配置文件修改。 继续阅读“初学nginx踩过的坑”

平滑升级Nginx

当Nginx服务升级到新的版本时,必须要将旧的二进制文件Nginx替换掉,通常情况下这是需要重启服务的,但Nginx支持不重启服务来完成新版本的平滑升级。

平滑升级步骤:

1.通知正在运行的旧版本Nginx准备升级。通过向master进程发送URL2信号可达到目的:

这时,运行中的Nginx会将pid文件重命名,如将/usr/local/nginx/logs/nginx.pid重命名为/usr/local/nginx/logs/nginx.pid.oldbin,这样新的Nginx才有可能启动成功。

2.启动新版本的Nginx,这时通过ps命令可以发现新旧版本的Nginx在同时运行。

3.通过kill命令向旧版本的master进程发送SIGQUIT信号,以“优雅”的方式关闭旧版本的Nginx。随后将只有新版本的Nginx服务运行,此时平滑升级完毕。

【摘自:《深入理解Nginx:模块开发与架构解析(第2版)》 陶辉 著】

 

安装Nginx

参考:http://www.runoob.com/linux/nginx-install-setup.html

备注:此链接中安装的nginx是1.6.2版本,建议通过 yum install nginx 看是否可用通过yum安装更高版本,或更换nginx官方的新版下载链接

安装nginx前的准备工作

1.确保linux内核在2.6及以上:

备注:因为linux2.6及以上内核才支持epoll, 而在Linux上使用select或poll来解决事件的多路复用,是无法解决高并发压力问题的。

2.安装Nigx必备软件:

1)能编译C语言:

2)能使用正则表达式,支持rewrite功能:

备注:查看pcre版本: pcre-config --version

3)能对HTTP包进行gzip格式压缩:

4)能支持https:

 

初学者使用nginx时要注意的内容

  1. 除了安装nginx外,还要安装php-fpm
  2. 假设nginx安装在/usr/local/nginx,那么常用命令有
    • 启动: /usr/local/nginx/sbin/nginx
    • 重启: /usr/local/nginx/sbin/nginx -s reload
    • 停止: /usr/local/nginx/sbin/nginx -s top
  3. nginx的配置文件nginx.conf里的常用写法:

    其中,

    • 每行都要以分号“ ; ”结尾
    • /var/www/html 是存放代码的目录;
    • fastcgi_pass 127.0.0.1:9000 默认不用修改,如果修改端口号9000,则也要相应地修改php-fpm的配置文件,使其监听对应的端口号;
    • $document_root$fastcgi_script_name 可以保持原样,不用修改,或者将 $document_root 改成对应的html目录也可。
  4. 更详细的配置参考:Nginx配置
  5. 参考:实战Nginx与PHP(FastCGI)的安装、配置与优化