✨✨安装 nginx-1.9.0.tar.gz

tar xf nginx-1.9.0.tar.gz

cd nginx-1.9.0.

依赖包: yum install -y pcre-devel zlib-devel gcc* 

 cd nginx-1.9.0

./configure --prefix=/usr/local/nginx (安装成功有提示一下文件路径文件名称)

 nginx path prefix: "/usr/local/nginx" #安装目录
  nginx binary file: "/usr/local/nginx/sbin/nginx"  执行文件
  nginx configuration prefix: "/usr/local/nginx/conf"  配置文件路径
  nginx configuration file: "/usr/local/nginx/conf/nginx.conf"  配置文件名称
  nginx pid file: "/usr/local/nginx/logs/nginx.pid"        pid
  nginx error log file: "/usr/local/nginx/logs/error.log"  错误日志文件
  nginx http access log file: "/usr/local/nginx/logs/access.log"    访问日志
  nginx http client request body temporary files: "client_body_temp"  
  nginx http proxy temporary files: "proxy_temp"
  nginx http fastcgi temporary files: "fastcgi_temp"
  nginx http uwsgi temporary files: "uwsgi_temp"
  nginx http scgi temporary files: "scgi_temp"

make && make install

到此安装结束

启动 /usr/local/nginx/sbin/nginx 

重启 /usr/local/nginx/sbin/nginx -s reload

停止 /usr/local/nginx/sbin/nginx -s stop

访问:服务器ip地址80端口 即可出现nginx欢迎界面。


✨✨基本配置 虚拟主机

/usr/local/nginx/conf 配置文件目录 nginx.conf

user  nobody;  #已那个用户启动nginx  你也可以用nginx
worker_processes  1;    #指定一个父进程 开启几个子进程 进程数尽量跟cpu核心数一致

#error_log  logs/error.log;  #错误日志
#error_log  logs/error.log  notice; #日志级别
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;  #pid文件


events {    #工作模式
    worker_connections  1024;   #链接上线 一个子进程可以又多少线程 一般修改这么值 都是从小往大了修改 进程数*线程数=并发
}


http {        #设定http服务器
    include       mime.types;   #nginx包含类型文件
    default_type  application/octet-stream; #默认

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ' #日志的格式
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;    #访问日志

    sendfile        on;      #是否调用sendfile函数 如果做下载服务器最好是off
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;    #链接超时时间

    #gzip  on;      #是否开启压缩

    server {      #一个server 就是一个网站 写多个 就是虚拟主机
        listen       80;    #端口
        server_name  localhost;    #服务的名称

        #charset koi8-r;      #字符编码

        #access_log  logs/host.access.log  main;  #访问日志

        location / {      #默认请求 安装路径的html目录为根
            root   html;  #根
            index  index.html index.htm; #定义页面文件叫什么名字 先写谁就找谁
        }

        #error_page  404              /404.html;    #错误页面

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;  #错误页面
        location = /50x.html {    #页面文件名字
            root   html;        #谁为根
        }

 (1)虚拟主机

 vim conf/nginx.conf

user www;
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  5;
    server {        #虚拟主机1端口80
        listen       80;
        server_name  localhost;
        location / {
            root   html;
            index  index.html index.htm;
        }
}
     server {      #虚拟主机2 端口8080
        listen       8080;
        server_name  localhost;
        location / {
            root   www;  #目录根 / 安装目录为根
            index  index.html index.htm;  #根下的www目录找文件 第一个index.html
        }
    }
}

  (2) 基于不同ip虚拟主机

临时生成网卡    ifconfig ens33:0 192.168.13.149

user www;
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  5;
    server {
        listen       192.168.13.148:80;  #没什么可说的  #虚拟主机1
        server_name  localhost;
        location / {
            root   html;
            index  index.html index.htm;
        }
}
     server {
        listen       192.168.13.149:80;  #绑定一个ip就成  #虚拟主机2
        server_name  localhost;
        location / {
            root   www;
            index  index.html index.htm;
        }
    }
}

  (3)基于名字的虚拟主机

修改/etc/hosts 

user www;
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  5;
    server {
        listen      80;
        server_name  www.a.com;  #基于名字 虚拟主机1
        location / {
            root   html;
            index  index.html index.htm;
        }
}
     server {
        listen      80;
        server_name  www.b.com; #基于名字 虚拟主机2
        location / {
            root   www;
            index  index.html index.htm;
        }
    }
}

  


✨✨url重写

rewrite ^/(.*) http://www.czlun.com/$1 permanent;

说明:

rewrite为固定关键字,表示开始进行rewrite匹配规则

regex部分是 ^/(.*) ,这是一个正则表达式,匹配完整的域名和后面的路径地址

replacement部分是http://www.abc.com/$1 $1,是取自regex部分()里的内容。匹配成功后跳转到的URL。

flag部分 permanent表示永久301重定向标记,即跳转到新的 http://www.abc.com/$1 地址上

  配置文件

user www;
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  5;
    server {
        listen      80;
        server_name  localhost;
        location / {
            root   html;
            index  index.html index.htm;
            rewrite ^/(.*) http://www.abc.com/$1;  #访问本机80端口时候跳转 www.abc.com
}
    }
}

  


✨✨防盗链

概述:

对于图片来说,A网站,如果想使用B网站的图片,可以直接写上B网站图片的链接地址,或者将B网站的图片通过右键另存为的方式下载到本地,然后在页面上使用。如果B网站不想A网站这么干了,那么B网站可以采取防盗链的措施来干这个工作,结果就是,A网站想请求所需要的资源,通过url的方式,获取的可能不是原来的图片了,出现404或者别的图片替代了。如果通过浏览器直接打开图片url,那么仍然有可能显示403,这就是防盗链。

配置文件:

user www;
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  5;
    server {
        listen      80;
        server_name  localhost;
        location / {
            root   html;
            index  index.html index.htm;
           }
        location ~* .(gif|jpe?g|png|swf|flv)$ {   #匹配这些结尾的
            valid_referers none blocked *.baidu.com;   #不带有referers字样的包  又防火强(blocked)字样的  允许百度
                        if ($invalid_referer)  {    #其余都返回403
                                return 403;
                }
        }
    }
}

  


✨✨限速

配置文件:

user www;
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  5;
    server {
        listen      80;
        server_name  localhost;
        location / {
            root   html;
            index  index.html index.htm;
                limit_rate 100k;      #每秒下载速度为100k
                limit_rate_after 500m;  #下载500m时,开始限速

}
    }
}

 nginx只支持容量下载控制,如果想按照百分比下载,即可以安装插件,方可实现百分比下载控制。 

  老方式:

   limit_zone vfast $binary_remote_add 10M;  定义一个叫vfast限速区域,它的总带宽为10M

 limit_conn vfast 2; 限制最多链接两个

  新方式:

   limit_conn_zone $binary_remote_addr zone=vfast:10M;   #定义一个叫vfast限速区域,它的总带宽为10M

   limit_conn vfast 2; 限制最多链接两个

02-12 06:39