公司的项目有了到Nginx集群,然后自己试着在本机电脑上搭了一下,现在记录下操作步骤。
Nginx安装百度一下搜索的,以下是我的nginx.conf配置文件内容,大部分都有注释了,只挑关键的点,因为只是初步尝试成功,很多属性没都用上。
后台服务的话我用的是两个tomcat在跑,端口号不一样而已。
#user nobody nobody; #所有用户具有启停权限 不做限制
worker_processes 1; # 如果设置为数字,启动以后就具有多少个worker process
#pid logs/nginx.pid; #pid日志打印目录 默认存放在logs/nginx.pid
#error_log /var/log/nginx/error.log warn; #定义nginx错误日志打印目录,以及等级
events {
#epoll; #一般不配置,事件驱动模型
worker_connections 1024; #允许每一个WP同事开启的最大连接数。此值不能大于操作系统支持的打开
}
http {
include mime.types;
default_type application/octet-stream; #默认为 text/plain
sendfile on;
#client_max_body_size 20m; #上传文件大小,默认是1m,
#proxy_read_timeout 300; #默认值 60s
keepalive_timeout 65; #设置用户会话连接的保持时间,即超时时间
upstream iboy_server {
#ip_hash; #每个访客固定访问一个后端服务器,解决session问题
server localhost:8080;
server localhost:8081;
}
server {
listen 80;
server_name zdw.iboy.com; #自定义域名必须在system32/drivers/etc/host里新增配置
client_max_body_size 1024m;
location / {
proxy_pass http://iboy_server;
proxy_set_header Host $host:$server_port;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|css|js|html) {
root F:\web; #访问本机F:\web下的存放路径
index index.html; #主页为static/index.html
}
}
}
现在来解释下配置内容
1、http 里面的upstream 就是集群的关键,iboy_server是自己取的别名,在upstream 中集群的2个后台服务,ip_hash是每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题,我注释掉了是因为我的后台服务使用了spring+redis来管理session,解决了session跨域问题。两个server的端口号都是80开头的,一会就可以监听80端口的请求。
upstream iboy_server {
#ip_hash; #每个访客固定访问一个后端服务器,解决session问题
server localhost:8080;
server localhost:8081;
}
2、http里面的server是服务分发的关键,其中“listen 80”是监听了来自80的请求,到时候分发也是分发到80端口中的;
”server_name zdw.iboy.com“是我自定义域名,自定义域名必须在system32/drivers/etc/host里新增配置“127.0.0.1 zdw.iboy.com”中间是有个空格的,这是windows的方法,linux的文件位置自行百度。
3、server里面的location,我是用的是动静分离模式,所以有两个location,location是决定请求分发具体的位置,第一个是处理后端请求,第二个是处理静态资源。location 到中括号之间的是url的匹配规则,附上别人的解释链接,可以先看看这个在接着往下https://www.cnblogs.com/lidabo/p/4169396.html 。
第一个location当url普通匹配满足是请求就会被这个location处理,主要讲”proxy_pass http://iboy_server;”这个就是之前upstream 取得别名iboy_server。
第二个中的“root F:\web”是正则匹配满足时就会把请求指向本机f盘的静态资源文件,我的本机f盘下有个web文件夹,当请求是zdw.iboy.com/index.html时,就会从我的f盘下的web文件夹里找index.html文件。如果请求是zdw.iboy.com/images/iboy.jpg时,就会从我的f盘下的web文件夹里的images文件夹找iboy.jpg文件。
到这里就差不多了,只是简单的把集群服务搭起来,nginx还有很多功能没有用上。
参考链接
http://www.cnblogs.com/mq0036/p/9794540.html