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