1.nginx配置文件测试
root@kallen:/usr/local/nginx/sbin# nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
2.nginx启动
[root@kallen ~]# /usr/local/nginx/sbin/nginx
3.nginx负载均衡
nginx 的upstream 目前支持4 种方式的分配——
(1)轮询(默认) :
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
(2)weight :
指定轮询几率,weight 和访问比率成正比,用于后端服务器性能不均的情况。
(3)ip_hash :
每个请求按访问ip 的hash 结果分配,这样每个访客固定访问一个后端服务器,可以解决session 的问题。可以针对同一个c 类地址段中的客户端选择同一个后端服务器,除非那个后端服务器宕了才会换一个。
(4)fair(第三方):
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
(5)url_hash(第三方):
按访问url 的hash 结果来分配请求,使每个url 定向到同一个后端服务器,后端服务器为缓存时比较有效。
4.nginx安装及配置
(1) nginx源码安装
[root@kallen ~]# cd /usr/local/src/
[root@kallen ~]# wget http://syslab.comsenz.com/downloads/linux/nginx-0.9.6.tar.gz[root@kallen ~]# tar zxvf nginx-0.9.6.tar.gz[root@kallen ~]# cd nginx-0.9.6
./configure --prefix=/usr/local/nginx --sbin-path=/usr/local/nginx/sbin/nginx --conf-path=/usr/local/nginx/conf/nginx.conf --error-log-path=/usr/local/nginx/logs/error.log --http-log-path=/usr/local/nginx/logs/access.log --pid-path=/usr/local/nginx/var/nginx.pid --lock-path=/usr/local/nginx/var/nginx.lock --http-client-body-temp-path=/dev/shm/nginx_temp/client_body --http-proxy-temp-path=/dev/shm/nginx_temp/proxy--http-fastcgi-temp-path=/dev/shm/nginx_temp/fastcgi--user=www --group=www --with-cpu-opt=pentium4f --without-select_module --without-poll_module --with-http_realip_module --with-http_sub_module --with-http_gzip_static_module --with-http_stub_status_module --without-http_ssi_module --without-http_userid_module --without-http_geo_module --without-http_memcached_module --without-http_map_module --without-mail_pop3_module --without-mail_imap_module --without-mail_smtp_module --with-pcre=/usr/local/src/pcre-8.32/ --with-zlib=/usr/local/zlib
[root@kallen ~]# make && make install [root@kallen ~]# mkdir /dev/shm/nginx_temp
有的nginx版本编译时会因为pcre编译不过去,需要修改一下
--with-pcre=/usr/local/src/pcre-8.32,前提是已经下载了pcre源码包pcre-7.8.tar.gz,并解压到/usr/local/src/pcre-8.32,不需要编译pcre.
在实际安装过程中可能需要手动安装以下依赖包:
a. 安装依赖软件
apt-get--install-suggestsinstallgccg++make
b. 下载相关软件
wget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gzwget http://zlib.net/zlib-1.2.8.tar.gzwget http://www.openssl.org/source/openssl-1.0.1g.tar.gzwget http://www.canonware.com/download/jemalloc/jemalloc-3.6.0.tar.bz2wget http://tengine.taobao.org/download/tengine-2.0.2.tar.gz
c. 安装pcre
tar zxvf pcre-8.35.tar.gz cd pcre-8.35 ./configure --prefix=/usr/local/pcre-8.35 make && make install
d. 安装zlib
tar zxvf zlib-1.2.8.tar.gz cd zlib-1.2.8 ./configure --prefix=/usr/local/zlib-1.2.8 make && make install
[error]-1:
./configure: error: the http gzip module requires the zlib library. you can either disable the module byusing--without-http_gzip_module option, or install the zlib library intothesystem, or build the zlib library statically fromthe source with nginx byusing--with-zlib= opti
[error]-2:
configure: error: you need a c++ compiler for c++ support.make[1]: *** [/usr/local/src/pcre-8.32/makefile] error 1make[1]: leaving directory `/home/kallen/mydoc/nginx-1.8.0'make: *** [build] error 2
安装完成后的配置信息如下:
[nginx configuration summary]configuration summary+ using pcre library: /usr/local/src/pcre-8.32+ openssl libraryisnot used+using builtin md5 code+ sha1 libraryisnot found+ using zlib library: /usr/local/zlib nginx path prefix:/usr/local/nginx nginx binary file:/usr/local/nginx/sbin/nginx nginx configuration prefix:/usr/local/nginx/conf nginx configurationfile:/usr/local/nginx/conf/nginx.conf nginx pid file:/usr/local/nginx/var/nginx.pid nginx error log file:/usr/local/nginx/logs/error.log nginx http access log file:/usr/local/nginx/logs/access.log nginx http client request body temporary files:/dev/shm/nginx_temp/client_body nginx http proxy temporary files:/dev/shm/nginx_temp/proxy nginx http fastcgi temporary files:/dev/shm/nginx_temp/fastcgi nginx http uwsgi temporary files:uwsgi_temp nginx http scgi temporary files:scgi_temp
(2) 编写nginx启动脚本
[root@kallen init.d]# vi /etc/init.d/nginx
写入以下内容:
#!/bin/bash# # startup script for the nginx http server## kallen ding, apr 23 2015nginx_path=/usr/local/nginx/options=-c ${nginx_path}conf/nginx.confprog=nginxnginx=${nginx_path}sbin/nginxpidfile=/var/run/nginx.pid# source function library.. /etc/rc.d/init.d/functionsstart() { echo -n starting $prog: daemon --pidfile=${pidfile}$nginx$options retval=$? echoreturn$retval}stop() { echo -n stopping $prog: killproc -p ${pidfile}$nginx retval=$? echo}reload() { echo -n $reloading $prog: killproc -p ${pidfile}$nginx -hup retval=$? echo}# see how we were called.case$1in start) start ;; stop) stop ;; restart) stop start ;; reload) reload ;; status) status $prog retval=$? ;; *) echousage: $prog {start|stop|restart|reload|status} retval=3esacexit$retval
保存后,更改/etc/init.d/nginx的权限
[root@kallen ~]# chmod 755 /etc/init.d/nginx[root@kallen ~]# chkconfig --add nginx[root@kallen ~]# chkconfig nginx on
以上就介绍了lnmp环境搭建——nginx篇,包括了方面的内容,希望对php教程有兴趣的朋友有所帮助。