生产环境:

操作系统:CentOS 6.8

Web服务软件:nginx-1.10.1

任务驱动:接到领导指示,要把14G左右大小的大学生创业序列视频发布到网上。

分析任务:考虑到此视频容量大,该格式不支持在线播放,又要有利用于学校师生方便获取视频资料,同时又要迎接上级检查。

解决方式:让师生下载视频到本地电脑观看学习。

效果:通过完成实战任务来消化1个月来学习nginx的知识。

有两种方案可供选择:

1.  CentOS+Apache: 动态业务,可以选择Apache,建议选择nginx。

2.  CentOS+nginx:静态业务,高并发场景,采用Nginx,既有静态业务又有动业务,也将采用Nginx,此项任务是静态业务,所以选择nginx。

操作步骤:

1.  在客户端先分别压缩各个视频,然后通过WinSCP上传到Linux服务器。

2.  安装nginx服务软件省略。

3.  主要是对nginx的基本安全优化,对参数优化提升服务性能,限制网站来源IP访问,错误页面的跳转,对站点目录及目录权限优化,控制并发连接数量,控制客户端请求的速率

[root@sky9896 conf]# ca t nginx.conf

user  nginx  nginx;  #更改默认用户

worker_processes  2;   #因有2个CPU,所以配置2个进程数

worker_rlimit_nofile  65535;  #进程最大打开文件数,该要放在主标签段

events {

    use epoll;  #事件处理模型优化

    worker_connections  512;  #单个客户进程允许的客户端连接数,因硬件配置太低,所以设置数字比较小;

   }

http {

    include       mime.types;

    default_type  application/octet-stream;

    charset utf-8;   #解决网页乱码

    server_tokens off;   #关闭显示服务版本信息

    tcp_nodelay on;   #提高I/O性能

    client_header_timeout 15;   #客户端请求头数据的超时时间

    client_body_timeout 15;   #客户端请求主体的超时时间

    send_timeout 25;

    client_max_body_size  8m;   #上传文件大限限制

    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;  #开启文件的高效传输模式

    tcp_nopush     on;  #防止网络和磁盘阻塞

    keepalive_timeout  60;  #设置连接超时

  # include extra/nginx_vhosts.conf;

limit_conn_zone $binary_remote_addr zone=addr:10m;

limit_req_zone $binary_remote_addr zone=one:20m rate=1r/s;  #控制客户端请求的nginx速率

 server {

   listen 9090;   #采用9090端口,默认的是80端口

   server_name  117.40.*.*:9090;

   access_log  /application/nginx/logs/www.access.log;

   error_log  /application/nginx/logs/www.error.log;

limit_conn addr 10;    #限制单IP的并发连接数为10

   limit_req zone=one  burst=30;   # 30个请求排队

location / {

   root  /application/nginx/html/www; 

   error_page 404  /404.html;   #当出现404错误时,会跳转到404.html页面

  error_page 404  http://117.*.*.*;   #两种方式选择使用其中一种来解决实际问题

   autoindex on;   #开启显示目录功能

   autoindex_exact_size off;  #显示出文件的大概大小,单位是GB

   autoindex_localtime on;   #显示的文件时间为文件的服务器时间

   deny 192.168.1.1;    #只允许该IP访问

   allow 192.168.1.0/24;  #只允许该IP段访问

   allow 192.168.0.0/16;  #只允许该IP段访问

   allow 117.40.*.*/24;  #只允许该IP段访问

   allow 182.99.242.*;  #只允许该IP访问

   deny all;     #除了上面允许的,其他的都禁止。

     }

   }

 }   

[root@sky9896 html]# chmod 755 www  #目录权限,保证不遭受******

[root@sky9896 www]# chmod 644 *.*   #文件权限