Nginx学习
nginx简介
反向代理服务器
web服务器:转发请求,nginx,apache,类似于服务员
应用服务器:tomcat,处理动态的语言,处理逻辑,类似于厨师。
Nginx配置
nginx.conf需要修改的是
1,user:是否是root
2,worker_processes:几个内核,查看cpu核数:cat /proc/cpuinfo,另外一种是top命令,然后按1
3,worker_cpu_affinity:对应上一个配置,用二进制形式写出来(0-x)proxy_passproxy_pass
4,日志的path:自定义
5,include domains/* 关注这个配置,存放tomcat相关的配置,默认不用改
6,拷贝/usr/local/src/下的xxx.demo.com到/export/servers/nginx/conf/domains目录下
7,vi xxx.demo.com
8,注意upstream后的名字和proxy_pass保持一致
9,server 127.0.0.1:8080 weight=10 max_fails=2 fail_timeout=30s;有几个tamcat,配置几个,weight:权重,每个tomcat分配的负载比例
10,server name,修改成跟xxx.demo.一致即可
11,在nginx的sbin目录下,执行 ./nginx 即可启动nginx,./nginx -s reload 重启nginx
12,默认情况下,nginx的日志在logs目录下,access.log和error.log
13,启动nginx,在浏览器中通过ip直接访问接口,或者配上host,通过域名访问
domain下文件的修改
upstream tomcat_xxx {
ip_hash;
server 127.0.0.1:8080 weight=10 max_fails=2 fail_timeout=30s;
server 127.0.0.1:8082 weight=10 max_fails=2 fail_timeout=30s;
}
server
{
listen 80;
server_name www.teach.com;
access_log /export/servers/nginx/logs/access.log main;
error_log /export/servers/nginx/logs/error.log warn;
chunkin on;
error_page 411 = @my_error;
location @my_error {
chunkin_resume;
}
root /export/apps/;
location / {
proxy_next_upstream http_500 http_502 http_503 http_504 error timeout invalid_header;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://tomcat_xxx;
expires 1d;
}
location /logs/ {
autoindex off;
deny all;
}
}
Nginx负载均衡策略
1、轮询:默认策略,轮流分配请求
2、ip_hash:根据ip进行hash算法,固定的ip分配到固定的后端server
3、fair:根据后端server的响应时间来分配请求,响应时间短的优先分配
4、url_hash:根据url进行hash算法,固定的url分配到固定的后端server