Nginx搭建Tomcat负载均衡环境

安装Nginx

wget http://nginx.org/packages/centos/6/x86_64/RPMS/nginx-1.12.0-1.el6.ngx.x86_64.rpm

rpm -ivh nginx-1.12.0-1.el6.ngx.x86_64.rpm

rpm -ql nginx  //查看安装路径 或 whereis nginx

 

安装完成后,一些目录和文件的基本信息,如下所示:

进程ID文件为/var/run/nginx.pid

Nginx的配置文件存放在/etc/nginx/目录下

可执行程序文件为/usr/sbin/nginx

站点默认目录为/usr/share/nginx/html

错误日志路径为/var/log/nginx/error.log

访问日志路径为/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

 

 

用法1:访问静态文件 

server {
    listen       80;
    server_name  localhost;

    location /html/ {
        root   /usr/share/nginx;
        index  index.html index.htm;
    }

    location /hadoop_docs/ {
        alias /usr/local/hadoop/share/doc/hadoop/;  #最后的"/"不可缺,否则出现forbidden错误
        index index.html index.htm;
    }
}

http://localhost/html   访问/usr/share/nginx/html/目录下的文件

http://localhost/hadoop_docs 访问/usr/local/hadoop/share/doc/hadoop/目录下的文件

 

注意root和alias使用时的一些区别:

1)alias指定的目录是准确的,即location匹配访问的path目录下的文件直接是在alias目录下查找的;

2)root指定的目录是location匹配访问的path目录的上一级目录,这个path目录一定要是真实存在root指定目录下的;

3)使用alias标签的目录块中不能使用rewrite的break(具体原因不明);另外,alias指定的目录后面必须要加上"/"符号!!

4)alias虚拟目录配置中,location匹配的path目录如果后面不带"/",那么访问的url地址中这个path目录后面加不加"/"不影响访问,访问时它会自动加上"/";

    但是如果location匹配的path目录后面加上"/",那么访问的url地址中这个path目录必须要加上"/",访问时它不会自动加上"/"。如果不加上"/",访问就会失败!

5)root目录配置中,location匹配的path目录后面带不带"/",都不会影响访问。

 

 

用法2:负载均衡

Nginx提供的负载均衡策略有2种:内置策略和扩展策略。内置策略为轮询,加权轮询,Ip hash。扩展策略,就天马行空,只有你想不到的没有他做不到的啦,你可以参照所有的负载均衡算法,给他一一找出来做下实现。

Ip hash算法,对客户端请求的ip进行hash操作,然后根据hash结果将同一个客户端ip的请求分发给同一台服务器进行处理,可以解决session不共享的问题。 

 

具体配置代码见:

http://oracle-api.iteye.com/admin/blogs/2088083

 

 

用法3:web缓存

Nginx可以对不同的文件做不同的缓存处理,配置灵活,并且支持FastCGI_Cache,主要用于对FastCGI的动态程序进行缓存。配合着第三方的ngx_cache_purge,对制定的URL缓存内容可以的进行增删管理。 

 

 

参考:

http://nginx.org/en/linux_packages.html#stable

http://shiyanjun.cn/archives/72.html

http://nginx.org/en/docs/beginners_guide.html

http://www.cnblogs.com/knowledgesea/p/5175711.html

http://www.cnblogs.com/knowledgesea/p/5199046.html

http://www.cnblogs.com/kevingrace/p/6187482.html   Nginx虚拟目录alias和root目录

猜你喜欢

转载自oracle-api.iteye.com/blog/2380222