Nginx 是一款轻量级的 Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,其特点是占有内存少,并发能力强。我的应用主要有3个,端口转发、反向代理和web服务。我的网络架构是,所有访问都指向nginx服务器,由它根据端口和地址转发至不同的服务器。 默认环境是debain系统,已安装nginx。
1、资源准备:
中文官网: Nginx中文文档
官网下载:nginx: download
2、nginx配置文件
在/etc/nginx中,有三个文件 nginx.conf,sites-enabled,sites-available。主配置文件 nginx.conf,由于该文件 #include sites-enabled,所以有两种方式扩展
1)可在sites-enabled文件夹下,新增配置文件;
2)在sites-available文件夹下,新增配置文件,再将文件通过软链接,到sites-enabled文件夹下。
3、端口转发:
server {
listen 80;
#访问的地址 http://192.168.0.1:80/text/...
location /text/ {
proxy_pass http://192.168.0.2:8080/text/;
}
}
4、反向代理及负载均衡:
server {
listen 80;
##访问的地址 http://192.168.0.1:80/text/...
location /text/ {
proxy_pass http://myText/text/;
proxy_next_upstream error http_404 http_500 http_502 http_503 http_504;
proxy_connect_timeout 20s;
proxy_read_timeout 20s;
proxy_send_timeout 20s;
}
}
此处myText在nginx.conf配置,由于192.168.0.2的权重是3,优先访问该服务器,若服务器的失败次数大于5,则切换至192.168.0.3的服务器。实现一定程度的负载均衡和容灾。
#weight: 权重,数值越大,流量越多
#max_fails:最大访问失败次数
#fail_timeout:访问失败等待时长
http {
upstream myText{
server 192.168.0.2:8081 weight=3 max_fails=5 fail_timeout=60s;
server 192.168.0.3:8081 max_fails=5 fail_timeout=60s;
}
}
5、web服务
server {
listen 80;
##访问的地址 http://192.168.0.1:80/text/inde.html,Nginx访问服务器
## /usr/local/html/text/templates/web/index.html
location /text/ {
alias /usr/local/html/text/templates/web/;
}
}
6、操作nginx
启动nginx:systemctl start nginx
查看状态:systemctl status nginx
停止nginx:systemctl stop nginx
重启nginx:systemctl restart nginx
重载当配置更改后,无须重启nginx服务器:nginx -s reload
7、查看日志:
日志文件的路径: /var/log/nginx/
包含access.log和 error.log 两个文件,查看访问记录和异常日志,其中access.log文件,在应用中指数级增长,建议新建一个.sh脚本,定时清理并保存近一周的记录。
#!/bin/bash
#mycat的日志清理
logs_path="/usr/local/mycat/logs/"
find $logs_path -name `date -d "-1 month" +%Y-%m` -exec rm -rf {} \;
linux终端,输入 crontab -e
# 每天2点清除mycat日志
0 2 * * * sh /usr/local/bin/mycat_clean.sh