NGINX負(fù)載均衡配置:
1.在/usr/local/nginx/conf下新建一個(gè)conf配置文件(名字隨便取),這里以fzjh.conf為例,當(dāng)然你也可以備份nginx.conf之后,直接對(duì)nginx.conf進(jìn)行編輯.
user nobody;
worker_processes? 4;
events {
? ? worker_connections? 10240;
}
http {
? ? upstream demo{
? ? ?#配置ip_hash,添加該配置后,系統(tǒng)會(huì)自動(dòng)記錄用戶第一次訪問后被分配的服務(wù)器,然后在接下來的所有訪問中,該用戶都只能被分配到第一次訪問時(shí)訪問的服務(wù)器,對(duì)所有用戶都是如此,當(dāng)然這樣并不影響負(fù)載均衡,依然可以負(fù)載均衡,只是犧牲了一定的負(fù)載均衡效果.
? ? ? #ip_hash;
? ? ? server 115.239.211.112; #這里為集群的服務(wù)器Ip,集群服務(wù)器中的內(nèi)容應(yīng)該保持一致,這里為了演示,選了不同內(nèi)容的服務(wù)器,以便看的出來.
? ? ? server 140.205.135.3 weight=2;//可以設(shè)置權(quán)值,權(quán)值越大,分配到的幾率越大,權(quán)值不設(shè)置的話默認(rèn)為1.
? ? }
? ? server{
? ? ? ? listen 8089;#監(jiān)聽的端口,可以自己指定
? ? ? ? server_name? www.laohan1.com;#這里的虛擬主機(jī)指向的域名,可以在windows中配置hosts實(shí)現(xiàn).
? ? ? ? location /{
? ? ? ? ? proxy_pass http://demo;#指定反向代理到哪個(gè)服務(wù)器組,一定要與前面upstream的name保持一致.
? ? ? ? }
? ? }
}
以上便是負(fù)載均衡和反向代理的配置,動(dòng)靜分離只需要在Location中添加配置過濾,這里引用阿里云官方的配置方法,非常直觀,備用.
案例:分離動(dòng)態(tài)頁面和靜態(tài)頁面?
主機(jī)s100上配置一個(gè)Nginx
upstream statics{?
server s101:80 weight=1; #訪問配置了靜態(tài)頁面的nginx?
server s102:80 weight=1; #訪問配置了靜態(tài)頁面的nginx?
server s103:80 weight=1; #訪問配置了靜態(tài)頁面的nginx?
}?
upstream tomcats{?
server s101:8080 weight=1;#訪問tomcat?
server s102:8080 weight=1;#訪問tomcat?
server s103:8080 weight=1;#訪問tomcat?
}?
server{?
listen 80;?
server_name s100;?
access_log off;?
location ~* /.(png|html|js|css)$ {?
proxy_pass http://statics;?
#所有以.png .html .js .css結(jié)尾的url進(jìn)入此路徑?
}?
location / {?
proxy_pass http://tomcats;?
#其它url進(jìn)入此路徑?
}?
}?
主機(jī)s100,s101, s102上分別配置nginx 和 tomcat(略)
server{?
listen 80;?
server_name s101;?
location / {?
root html; #存放了靜態(tài)頁面的根目錄?
index index.html index.htm; #主頁?
}?
}
詳情可以參考阿里云:https://www.aliyun.com/jiaocheng/125695.html?spm=5176.100033.1.13.hNcx0X
日志切割:?
1.手動(dòng)切割: 先將原來的日志文件備份 mv access.log 20180612.log,備份為當(dāng)前的日期即可. 然后使用kill -USR1 +PID 重新開啟新的日志
2.自動(dòng)切割:
2.1在logs文件夾下通過touch cutlog.sh新建cutlog.sh文件,并編輯:vi cutlog.sh,編輯里面內(nèi)容如下:
D=$(date +%Y%m%d) #獲取當(dāng)前日期
mv /usr/local/nginx/logs/access.log ${D}.log #將原來的日志文件備份,重命名為今天的日期
kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid) #重新開啟記新的日志
2.2通過crontab(類似于java中的定時(shí)器)來定時(shí)執(zhí)行cutlog.sh文件:
crontab -e(新建一個(gè)定時(shí)執(zhí)行的任務(wù))?
59 23 * * * /bin/bash /usr/local/nginx/logs/cutlog.sh(代表在每天的23:59執(zhí)行該任務(wù))
創(chuàng)建好了可以通過crontab -l來查看是否創(chuàng)建成功.
附crontba時(shí)間的格式:
基本格式 :
* * * * * command
分 時(shí) 日 月 周 命令
第1列表示分鐘1~59 每分鐘用*或者 */1表示
第2列表示小時(shí)1~23(0表示0點(diǎn))
第3列表示日期1~31
第4列表示月份1~12
第5列標(biāo)識(shí)號(hào)星期0~6(0表示星期天)
第6列要運(yùn)行的命令
crontab文件的一些例子:
30 21 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每晚的21:30重啟apache雪标。