Nginx 功能

1.日志切割

vim /usr/local/nginx/logs/cut_log.sh
    #!/bin/bash
    Dateformat=`date +%Y%m%d`
    Basedir="/usr/local/nginx"
    NginxLogdir="$Basedir/logs"
    Logname="access"
    [ -d $NginxLogdir ] && cd $NginxLogdir || exit 1
    [ -f ${Logname}.log ] || exit 1
    /bin/mv ${Logname}.log ${Dateformat}_${Logname}.log
    $Basedir/sbin/nginx -s reload
    
chmod +x /usr/local/nginx/logs/cut_log.sh
crontab -e
    00 00 * * * /usr/local/nginx/logs/cut_log.sh

2.rewrite地址重写

在nginx.conf中的server中进行添加跳转模块,可以让访问直接跳转到指定页面
第一个server
    server {
        listen       81;
        server_name  www.haha.com;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
        }
        }
第二个server
    server {
        listen  80;
        server_name www.jcfw.com;
        rewrite ^/(.*) http://www.hahha.com:81/$1 permanent;

        location / {
           proxy_pass http://proxy;
        }
        }
vim /etc/hosts
    192.168.1.5 www.haha.com

3.根据用户的URI返回不同的状态码

在Nginx.conf的server模块中添加
         root /var/www/sls;
         location / {
            return 401;
         }
         location = / {
            return 402;
         }
 
         location /documents/ {
            return 403;
         }
         
         location ^~/images/ {
            return 404;
         }


firefox www.haha.com/var/www/sls/sls.html
    401 Authorization Required
firefox www.haha.com
    402 Payment Required
firefox www.haha.com/documents/document.html
    403 Forbidden
firefox www.haha.com/images/images.html
    404 Not Found

4.隐藏WEB服务器的版本号和名称

vim /usr/local/nginx/conf/nginx.conf    #在http模块中添加以下内容
    server_tokens off;
nginx -s reload
firefox www.haha.com    #显示不出来nginx版本号

cd /usr/src/nginx-1.11.1/src/core/
vim nginx.h
    #define NGINX_VERSION      "11.111.111.11"
    #define NGINX_VER          "WebLogic/" NGINX_VERSION
    #define NGINX_VAR          "WebLogic"
vim /usr/src/nginx-1.11.1/src/http/ngx_http_header_filter_module.c 
    static char ngx_http_server_string[] = "Server: WebLogic" CRLF; #49行
vim /usr/src/nginx-1.11.1/src/http/ngx_http_special_response.c
    "<hr><center>" NGINX_VER "(http://www.sls.com) </center>" CRLF  #22行
    "<hr><center>WebLogic</center>" CRLF    #29行
cd /usr/src/nginx-1.11.1/
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module && make && make install
nginx -s quit
nginx

5.优化Nginx

vim /usr/local/nginx/conf/nginx.conf
    user nginx;     
    worker_connections  1024;   
    worker_rlimit_nofile 65535; 
    sendfile        on;     
    tcp_nopush      on;     
    tcp_nodelay     on; 
    keepalive_timeout  65;  
    client_header_timeout  30;  
    client_body_timeout  30;    
    send_timeout  30;   
    client_max_body_size 1M;
    gzip  on;
    gzip_min_length 1K;
    gzip_comp_level[1-9];
    gzip_varry on;
    gzip_types  text/plain  application/x-javascript    text/css    application/xml
vim /etc/security/limits.conf

在Nginx中可以设置自动连接超时
    1.将无用连接尽快超时,保证服务器资源高效使用
    2.当连接较多时,及时断掉空闲连接,保证服务器资源高效可用状态

内容解释

auth_basic string/off;      #开启用户密码或者关闭密码
auth_basic_user_file;       #用户密码存放路径
htpasswd -bc /usr/local/nginx/conf/htpasswd gods 123.com    #在上述目录生成一个用户名字叫做gods密码为123.com的名字叫做htpasswd的文件 -b 生成 -c 创建
^:匹配以...开头的数据
$:匹配输入字符串的位置
*:匹配*前面的字符串0次或者多次
+:匹配+前面的字符一次或者多次
?:匹配?前面的字符0次或者多次
permanent:返回301永久重定向
redirect:返回302临时重定向,浏览器显示跳转后的URL地址
location:根据用户请求的URI执行不同的应用(URI本地地址)
grep processor /proc/cpuinfo | wc -l    #查看CPU核心数

vim /usr/local/nginx/conf/nginx.conf
    worker_processes  1;    #工作时的进程数,在正常提供服务时设置和CPU核心数量相等的进程数,如果高负荷时设置为和CPU核心数的二倍数量
    worker_connections  1024;   #单个进程的最大连接数,最大工作连接数=工作的进程数 * 单个进程工作连接数量
    worker_rlimit_nofile 65535; #在events模块中添加,限制最大文件数量
    sendfile        on;     #开启文件高效传输模式,默认开启
    tcp_nopush      on;     #防止网络以及磁盘的IO阻塞(减少网络使用)
    tcp_nodelay     on;     #防止网络以及磁盘IO阻塞(发送数据时,内核将多个包合成一个包进行发送,减少IO消耗)
    keepalive_timeout  65;  #设置连接的超时时间
    client_header_timeout  30;  #设置读取客户机请求头部数据的超时时间
    client_body_timeout  30;    #设置读取客户机请求主体的超时时间
    send_timeout  30;   #用于指定响应客户端的超时时间
    client_max_body_size 1M;    #设置客户端请求主题的最大体积
    gzip  on;   #开启压缩文件功能,可以提升用户体验,发送给用户的数据小,打开网页速度快,节约网站带宽,减少流量损失,选择压缩或者不压缩的内容
    gzip_min_length 1K;     #允许压缩的最小字节
    gzip_comp_level[1-9];   #设置压缩比,压缩比越大处理文件的速度越慢,反之越快
    gzip_varry on;  #可以让前端的缓存服务器经过gzip压缩页面
    gzip_types  text/plain  application/x-javascript    text/css    application/xml #选择将要压缩的文件,text/htlm页面总是被压缩
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,402评论 6 499
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,377评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,483评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,165评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,176评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,146评论 1 297
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,032评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,896评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,311评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,536评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,696评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,413评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,008评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,659评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,815评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,698评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,592评论 2 353