Nginx是一款性能很高的反向代理服务器,而且支持负载均衡的配置,很容易上手,配置简单。另外,Nginx通过模块可以很容易扩展,所以Nginx所拥有的功能集合也是很大的。这里不再累述,可以参考官网文档或者相关资料。
下面,我们在CentOS 6.4上安装配置Nginx。
安装Nginx
首先,需要下载Nginx签名文件:
wget http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
导入Nginx签名文件,执行如下命令:
sudo rpm --import nginx_signing.key
然后,可以进行安装了,执行如下命令:
sudo yum install nginx
安装过程中,可能会提示安装一些依赖软件包。
等待安装完成后,一些目录和文件的基本信息,如下所示:
- 进程ID文件为/var/run/nginx.pid
- Nginx的配置文件存放在/etc/nginx/目录下
- 可执行程序文件为/usr/sbin/nginx
- 站点默认目录为/usr/share/nginx/html
- 错误日志路径为/var/log/nginx/error.log/li>
- 访问日志路径为/var/log/nginx/access.log
验证安装
查看一下Nginx的帮助信息:
sudo /usr/sbin/nginx -h
测试当前Nginx默认配置文件/etc/nginx/nginx.conf是否可用,执行如下命令:
sudo /usr/sbin/nginx -t
启动服务
如果使用默认的配置文件/etc/nginx/nginx.conf来启动Nginx,执行如下命令:
sudo /usr/sbin/nginx
如果指定一个配置文件,例如:/home/shirdrn/servers/nginx/conf/nginx.conf,可以执行如下命令:
sudo /usr/sbin/nginx -c /home/shirdrn/servers/nginx/conf/nginx.conf
启动成功以后,可以查询Nginx进程:
ps -ef | grep nginx
如果修改了配置文件,需要重新加载,则可以执行如下命令:
sudo /usr/sbin/nginx -s reload
终止服务
终止Nginx服务,有两种模式:
一种是立即强制停止服务,执行如下命令:
sudo /usr/sbin/nginx -s stop
另一种是比较优雅的方式,不再接收新到达的请求,等待已经处理的请求完成,执行如下命令:
sudo /usr/sbin/nginx -s quit
配置示例
下面,给出一个简单的实现负载均衡的配置示例,nginx.conf配置内容,如下所示:
user nginx; worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; upstream master { server slave1:8888 weight=1; server slave4:8888 weight=1; server slave6:8888 weight=1; } server { listen 80; server_name master; location / { root /usr/share/nginx/html/solr-cloud; index index.html index.htm; proxy_pass http://master; include /home/hadoop/servers/nginx/conf/proxy.conf } } }
上面引用的/home/hadoop/servers/nginx/conf/proxy.conf文件,配置内容,如下所示:
proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 10m; client_body_buffer_size 128k; proxy_connect_timeout 300; proxy_send_timeout 300; proxy_read_timeout 300; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k;
启动的时候,指定配置文件即可,例如,执行如下命令启动Nginx服务:
sudo /usr/sbin/nginx -c /home/shirdrn/servers/nginx/conf/nginx.conf
通过访问类似如下的链接,就能够通过Nginx来进行负载均衡,将请求分发到上面配置的3个服务器(slave1、slave2、slave3)上:
http://master/solr-cloud/mycollection/select?q=上海&fl=*&fq=building_type:1&facet=true&facet.field=category&start=0&rows=10
参考链接
本文基于署名-非商业性使用-相同方式共享 4.0许可协议发布,欢迎转载、使用、重新发布,但务必保留文章署名时延军(包含链接:http://shiyanjun.cn),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系。