nginx作为web服务应用

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


 

上一篇:reactor.netty.http.client.PrematureCloseException: Connection prematurely closed BEFORE response报错


下一篇:Django个人博客搭建教程---基于dwebsocket的实时日志系统