前言
Nginx (“engine x”) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由Igor Sysoev为俄罗斯访问量第二的Rambler.ru站点开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
1、Nginx安装
1.1 安装依赖环境包
zlib(gzip模块),pcre (rewrite模块),openssl(ssl 功能,不开启可以不安装)
以上软件安装类似,解压后进行configure, make ,make install ,如果需要明确指定软件安装目录,需要在configure的时候指定prefix
1.2 安装nginx
1.下载nginx,在http://nginx.org/en/download.html 进行下载,我下载的是stable版本,然后进行解压缩
2. ./configure –prefix=/opt/nginx –with-pcre=/root/package/pcre-8.31/ –with-openssl=/usr/lib64/openssl/engines(这里必须制定到pcre的源码,否则会报找不到configure)
3. make && make install
到此,nginx 安装完成。
2、Nginx 配置
2.1 nginx.conf
Nginx 安装完成后,在conf文件下面,我们主要修改 nginx.conf,来配置nginx,推荐做法是自己建一个conf文件然后include进来。
1、 在http层添加include /usr/local/nginx/conf/vhost/*.conf;
2、贴上我的vhost的配置文件
server { listen 80; --这里表示监听端口 server_name *.fordba.com; --这里表示绑定的域名 location / { -- 根目录,表示网站的存放目录 root /www/fordba; index index.php index.html index.htm; --添加index.php作为首页支持 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; } } -- 这里的if 语句为添加url rewrite。即静态URL error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } location ~* \.(ini|docx|doc)$ { deny all; } location = /xmlrpc.php { -- 这个一定要禁止,防止被暴力密码破解 deny all; } location ~ \.php$ { -- 这一部分表示添加php支持,nginx 本身是无法进行php文件解析,需要将他传输给php-frm处理或者给apache处理 root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /www/fordba$fastcgi_script_name; include fastcgi_params; } location ~ /\.ht { -- 禁止访问.htaccess 文件 deny all; } }
上面的配置就完成了一个vhost的配置,也可以添加多个配置,然后用nginx -s reload 重新加载配置文件。
3、 PHP 配置
如果你的PHP在一开始编译的时候没有添加php-fpm 支持,那么重新编译PHP吧。
./configure –prefix=/usr/local/php –with-mysql=/usr/local/mysql –enable-fpm –with-apxs2=/usr/local/apache2/bin/apxs –with-libxml-dir=/usr/local/libxml2 –with-mysqli=/usr/local/mysql/bin/mysql_config
然后查看PHP的其他module 是否正常,如果有不正常的模块,用phpize 去动态添加,详情请查看(如何为PHP动态的添加模块)
4、启动Nginx
目前Nginx以及PHP已经配置完成,关闭Apache,直接nginx就可以启动了,享受Nginx给你带来的静态文件的强大处理能力吧!
5、升级中碰到的错误
当升级完成后,我发现PHP文件能够正常解析,wp后台也能正常访问,但是前台一片空白,这就需要检查模块是否正常加载了。
;
检查常用的模块是否都正常,不正常就需要添加。我就碰到zlib模块出问题,重新动态添加了。
还有一个问题就是nginx的rewrite和Apache不一样,需要在vhost的配置文件中修改,上面已经贴出,否则也会导致前台出问题。
我的为什么会显示文件不存在
算你懂事,哼