Ⅰ 用Netty作http静态资源服务器,类似Nginx这样的,大一点的文件响应不正常怎么回事
您好,对于你的遇到的问题,我很高兴能为你提供帮助,我之前也遇到过哟,以下是我的个人看法,希望能帮助到你,若有错误,还望见谅!。展开全部Nginx+PHP-fpm组合,以内存占用小,负载能力强壮的特点,成为小内存VPS建站的首选组合。我们一起来探讨一下nginx+php-fpm高负载的优化方法。先来看看nginx配置参数的优化。nginx是前端接受浏览器端请求的web server, 配置可调的参数如下:下面是示例nginx配置user www-data;worker_processes 8;#worker_processes 调至8, 大于8没什么用,小于8,nginx性能发挥不出来worker_cpu_affinity 01 10 01 10 01 10 01 10;#worker_cpu_affinity 参数可以使nginx充分发挥多核Cpu的性能优势 ,上面的配置是针对双核CPU的配置。01表示第一个核,10表示第二个核,如果是四核cpu,一至四个核分别表示为 0001 0010 0100 1000error_log /var/log/nginx/error_log crit;pid /var/run/nginx.pid;worker_rlimit_nofile 10240;#worker_rlimit_nofile 是nginx能打开文件的最大句柄数,我们需要把这个数字设大一点。#linux系统的文件查看数限制查看是用 ulimit -n ,修改这个限制是用 ulimit -HSn 65535events{use epoll;#必须要用高效的event驱动,以获得最大性能worker_connections 10240;#max_clients = worker_processes * worker_connections/4 (最大连接数的计算公式)}http{include /etc/nginx/deny.iplist;include /etc/nginx/mime.types;default_type application/octet-stream;server_name_in_redirect off;server_names_hash_bucket_size 128;server_tokens off;client_header_buffer_size 32k;#client头buffer可以调为32Klarge_client_header_buffers 4 32k;client_max_body_size 8m;sendfileon;tcp_nopush on;keepalive_timeout 65;tcp_nodelayoff;client_body_timeout 10;client_header_timeout 10;send_timeout 60;output_buffers 1 32k;postpone_output 1460;open_file_cache max=1000 inactive=20s;open_file_cache_valid30s;open_file_cache_min_uses 2;open_file_cache_errors on;fastcgi_connect_timeout 300;fastcgi_send_timeout 300;fastcgi_read_timeout 300;fastcgi_buffer_size 32k;fastcgi_buffers 4 32k;fastcgi_busy_buffers_size 32k;fastcgi_temp_file_write_size 32k;gzip on;gzip_buffers 4 16k;gzip_http_version 1.0;gzip_comp_level 2;gzip_types text/plain application/x-javascript text/css application/xml;gzip_proxied expired no-cache no-store private auth;proxy_cache_path /var/lib/nginx/cache levels=1:2 keys_zone=staticfilecache:80m inactive=1d max_size=2500m;proxy_temp_path /var/lib/nginx/proxy;proxy_connect_timeout 300;proxy_read_timeout 120;proxy_send_timeout 120;proxy_buffer_size 16k;proxy_buffers 4 16k;upstream wordpressnginx{server 127.0.0.1:6000 weight=1 fail_timeout=120s;}include /etc/nginx/sites-enabled/*;}上面的配置里面,有多处设及到buffer和timeout的地方。我们可以根据需要,慢慢调大这些参数,buffer自然是大点好,但不要太大。16K是标准配置,可以增加到32,往上加更大也不是不行,但 要考虑到你系统内存大不大,够不够用。timeout是超时,如果服务器很繁忙,不妨增加超时等待时间,以避免频繁出现502错误。gzip是必须开启的,reverse proxy在允许的情况下,也尽量开启,一 是可以提升响应效率,二是降低服务器压力,gzip开启后更可以节省服务器带宽。nginx主要的配置如上所述。现在看一下php-fpm的配置。[global]pid = run/php5-fpm.pidprocess_control_timeout = 5[www]listen = /dev/shm/php-cgi.socklisten.allowed_clients = 127.0.0.1user = www-datagroup = www-datapm = staticpm.max_children = 7#这个决定了 php-fpm的总进程。我们要想同时响应更多的并发数,这个数值要尽可能大,比如500,1000pm.max_requests = 10000#并发数越大,这个最大请求数应该越大,并发数小,这个数值也应该越小。它表示,php-fpm进程响应了10000个并发请求之后,就自动重启一下进程。request_terminate_timeout = 30#表示等待30秒后,结束那些没有自动结束的php脚本,以释放占用的资源。env[HOSTNAME] = $HOSTNAMEenv[PATH] = /usr/local/bin:/usr/bin:/binenv[TMP] = /tmpenv[TMPDIR] = /tmpenv[TEMP] = /tmp小内存的vps虽然经过使用php-fpm+nginx,提升了系统的效率,可以同时响应较多的并发请求,但是当并发数上来了,比如从100上升到10000,小内存肯定响应不过来,cpu也会 因为太忙,而导致系统负载变得很高很高,这个时候,我们就要考虑升级硬件配置了。内存越大越好,CPU核心频率越高越好,CPU核越多越好。硬盘最好是SSD+RAID10。这样性能不仅高,数据安全也有保障。上面所提到的各个配置参数,设及到数值的,不妨自己 多试着调小,调大参数,然后重启下nginx或者php-fpm进程,看看效果怎么样。下面介绍一个比较好的压力测试工具,siege.debian和ubuntu用户可以通过apt-get install siege来安装siege.siege是一个跟ab.exe相似的http压力测试软件。我们可以用siege来测试我们的网站和服务器性能。siege -r 100 -c 10-r 是 repeat , -r 100是重复100次测试-c 10是表示模拟10个用户同时并发连接最后面是要测试的URL地址。测试过程中可以随时按CTRL+C中止进程,siege会生成一个报告给我们。我们可以同时根据siege的测试结果和监视服务器的负载情况,对系统压力状况进行一个深入了解和分析。接下来可以帮助我们判断该如何进行下一步操作,是继续优化配置,还是升级硬件。非常感谢您的耐心观看,如有帮助请采纳,祝生活愉快!谢谢!
Ⅱ Django 静态文件与动态文件
编辑 settings: MEDIA_ROOT 和 MEDIA_URL 代表的是用户上传后的文件保存的地方。可以理解为存放可变文件的文件夹。 这两个参数有什么用处呢? 在 Django 的 FileField 和 ImageField 这样的 Model 类中,有 upload_to 参数可选。当 upload_to 设置相关的地址后,如例子: 文件上传后将自动保存到: os.path.join(MEDIA_ROOT, upload_to) ,在本例中就是: /static/uploads/test_pictures 而 MEDIA_URL ,则代表用户可以通过怎样的 URL 来访问这些上传后的文件资源。 在本例子中,本机地址是: http://127.0.0.1/ , MEDIA_URL 设置为 /static/uploads/ 那么通过: http://127.0.0.1//static/uploads/文件名 就可以访问相关的上传图片或者其他文件。 STATIC_ROOT 和 STATIC_URL 则是网站中,用于网站放置的静态图片、CSS、JS 等文件的保存地址。可以理解为,保存网站运行中不会再变文件的文件夹(即不会删除或者新增) STATIC_URL ,同 MEDIA_URL 类似;设置 STATIC_URL 为 "/static/" 时候,通过: http://127.0.0.1/static/文件名 就可以访问相关的静态文件了。 STATIC_ROOT 是一个比较特殊的文件夹。这是 Django 的开发模式和部署模式区别最大的地方。 通常我们在开发模式下,可以在我们所在的 project 下建立相应的 app, 然后每个 app 下都建立相应的 static 文件夹。在开发模式下(Debug=True),Django 将为我们自动查找这些静态文件(每个app)并在网页上显示出来。然而,在部署模式下,Django 认为这些工作交由 web 服务器来运行会更有效率。 因此,在部署时,我们需要运行一下 : 这个命令将会把每个 app 里的 static 目录下的文件 到 STATIC_ROOT 这个文件夹下。 如果在部署模式下,即: (Debug=False) 访问相关网页,如: http://127.0.0.1/static/文件名 ,将不会访问 Django下各个 App 中的 static 文件夹,而是 STATIC_ROOT 中所指定的文件夹。 为了在部署模式下正确使用,我们还需要在 urls.py 中添加以下: 这相当于告诉 Django 碰到一个 "static" 开头的链接时,该如何处理。 了解完以上之后,我们让图片在前端显示出来。 编写一个 show 视图函数,来传递动态图片: 然后编写 show.html :
Ⅲ 静态网页是什么
静态网页是指在网站设计中,纯粹HTML(标准通用标记语言下的一个应用)格式的网页通常被称为“静态网页”,静态网页是标准的HTML文件,它的文件扩展名是.htm、.html,可以包含文本、图像、声音、FLASH动画、客户端脚本和ActiveX控件及JAVA小程序等。静态网页是网站建设的基础,早期的网站一般都是由静态网页制作的。静态网页是相对于动态网页而言,是指没有后台数据库、不含程序和不可交互的网页。静态网页相对更新起来比较麻烦,适用于一般更新较少的展示型网站。容易误解的是静态页面都是htm这类页面,实际上静态也不是完全静态,他也可以出现各种动态的效果,如GIF格式的动画、FLASH、滚动字幕等。
Ⅳ 文件服务器可以为所有工作站服务
文件服务器构建指南——准备篇(1) 数量激增的移动设备、多计算机家庭、宽带互联网接入、成本低廉的海量存储器以及其他许多家庭电子产品被PC 所取代,比如DVD 、蓝光光盘和CD 播放机等媒体设备被家庭影院PC 所取代,这促使人们对专用文件服务器计算机的兴趣越来越浓厚。无论你是拥有台式机和笔记本电脑的普通家庭用户,还是拥有多只台式机、笔记本电脑、上网本和平板电脑的高级用户,经常在工作单位或在路上远程访问家庭系统,你的计算体验都可能会因共享的数据访问而得到丰富。无论你的预算和存储需求很一般还是很大,本文介绍的文件服务器系统构建指南都能满足你的需要。何谓文件服务器?实际上,文件服务器是一种计算机,负责存储文件、连接到网络上,并为多个工作站计算机提供共同访问那些文件的共享机制。文件服务器不执行任何计算任务——也就是说,它们不为客户机运行程序。此外,它们并不像Web 服务器那样提供动态内容。另外,文件服务器也不像数据库服务器,因为前者不提供对共享数据库的访问,而后者提供这种访问。文件服务器既可以通过Windows 或Unix 协议,经由本地内联网,提供对静态文件的访问,也可以通过文件传输或超文本传输协议(FTP 和HTTP ),经由互联网,提供对静态文件的访问。 文件服务器可以用来做什么?文件服务器的主要功能就是存储。对于家庭用户来说,一个中央存储位置可以提高总体计算效率,降低总体计算成本。你把所有的重要文件都放在一个位置后,就不用担心目前在处理不同版本的文件,也不用担心因多份不太重要的文件分散在不同系统上而浪费了磁盘空间,可以通过合适的计算机,将合适的文件备份到合适的备份存储介质上,确保家里的每一台PC 都可以访问合适的文件,诸如此类。从系统构建者的角度来看,文件服务器还可以把你的各台工作站计算机解放出来,不必容纳多块硬盘,而且减少了总体的硬盘开支。随着固态硬盘的兴起——这种新兴硬盘提供了极高的性能,但每GB 的存储成本较高,文件服务器可以让工作站从此摆脱标准磁盘的性能桎梏——对于笔记本电脑和上网本来说这一点特别重要;固态硬盘的小容量常常是个关键的障碍因素,因为这些移动电脑通常只能装一只硬盘。专用文件服务器让家里的每个用户(不管他们是在家里还是在路上)都可以访问所需的每一个文件,不管他们在某个特定的时间使用哪种特定的设备。专用文件服务器还让你可以与朋友和同事共享自己的文件,只要为他们提供URL 、登录名和密码,然后指定对方可以访问的内容。比如说,也许你希望与亲朋好友共享你孩子的野营照片,但是你的云存储容量装不下所有那些照片以及你之前存储在云存储硬盘中的其他所有内容。也许你想与同事共享敏感信息,而不希望把敏感信息上传至由亚马逊或其他某家第三方机构拥有的服务器,但是文件实在太大了,没法通过电子邮件来发送。或者也许你出差待在酒店时,只是想访问200GB 大小的MP3库,但手里只有一台配备60GB 固态硬盘的上网本。这几个例子只是体现了文件服务器的一小部分功效。尽管如此,要满足所有这些要求,除了文件服务器,还有别的选择。你可以把所有照片倒到U 盘上,然后下次看到亲朋好友时交给对方——但你每次想共享更多的照片,只能这么做;再说了,谁知道你会不会把那只U 盘拿回来?你也可以把DVD-R 光盘邮寄给同事,但可能DVD-R 光盘4GB 左右的容量不够大,通过邮局寄的邮件至少得走好几天才能送达。如果你在路上,可能只带了便携式外部硬盘,暂且不说很占地方,还可能会丢失或被偷。文件服务器是可以解决所有这些问题的简易解决方案。家庭文件服务器不需要企业级硬件,成本非常低。它们还可以用不会导致电费猛增的耗电部件构建而成。文件服务器构建指南——准备篇(2)由于文件服务器的主要任务是存储,所以存储是需要考虑的最重要因素。你需要多大的存储空间?想共享用傻瓜数码相机拍下的50GB 的照片?想共享500GB 的音乐?想共享2TB 的电影DVD ISO镜像文件?还是想共享30TB 的混合媒体和与工作有关的文件?此外,你的存储需求在以多快的速度增加?你希望能够多轻松地扩展文件服务器的存储空间?你希望文件管理起来有多容易?遗憾的是,对于非IT 专业人士来说,许多功能比较强大的文件服务器操作系统运行起来不是特别轻松。然而,有些文件服务器操作系统运行起来很轻松。万一遇到灾难,能不能够恢复文件?把你的文件放在一台计算机上,相当于把所有鸡蛋全放在一只篮子里,风险很大。安全性方面如何?任何一种网络上的任何数据都容易遭到入侵。尽管本指南回答了所有这些问题,但它针对的是家庭用户,因而势必会在存储空间、管理功能、可恢复性和安全性等方面作出一点牺牲——就因为家庭用户通常既买不起专业级的文件服务器解决方案,也不需要这种解决方案。为什么构建文件服务器,而非使用NAS ?简而言之,NAS (网络附加存储)设备是一种计算机硬件。它专门用来提供可以通过网络来访问的存储资源。NAS 设备管理起来通常比文件服务器容易(有些NAS 设备只要点击几下鼠标,插上去就可以运行),但是常常受到专有软件的限制,存储容量和扩展性能都不如专用文件服务器。此外,比较高端的NAS 设备虽然能装与本文中提到的一些文件服务器一样多的硬盘,但是比文件服务器这个替代方案昂贵。最后,由于NAS 设备在设计时只考虑到一种用途,所以它们的灵活性不如文件服务器;在拥有多个系统的家庭中,晚些时候可能需要将文件服务器改装成一台基本的工作站。尽管如此,虽然NAS 设备不在本指南的探讨范围之内,但就算你之前并不熟悉,它们还是值得研究研究。本指南的侧重点不是详细介绍能够执行特定任务的特定价位的特定系统,而是讨论操作系统方面的选择、部件类型,以及这些不同的选择怎样最适合满足不同的要求。也就是说,你可能需要庞大的存储空间,但不是特别关心备份。或者你可能根本不需要太大的存储空间,但是想使用一款非常简易的文件服务器操作系统。本文提供了多个建议来符合你的要求,但愿你能构建起一台称心如意的文件服务器!虽然本指南的重点放在硬件上,但有必要先简单地讨论一下家庭文件服务器操作系统方面的选择。文件服务器构建指南——操作系统与处理器篇(1) 数量激增的移动设备、多计算机家庭、宽带互联网接入、成本低廉的海量存储器以及其他许多家庭电子产品被PC 所取代,比如DVD 、蓝光光盘和CD 播放机等媒体设备被家庭影院PC 所取代,这促使人们对专用文件服务器计算机的兴趣越来越浓厚。无论你是拥有台式机和笔记本电脑的普通家庭用户,还是拥有多只台式机、笔记本电脑、上网本和平板电脑的高级用户,经常在工作单位或在路上远程访问家庭系统,你的计算体验都可能会因共享的数据访问而得到丰富。无论你的预算和存储需求很一般还是很大,本文介绍的文件服务器系统构建指南都能满足你的需要。上一篇:文件服务器构建指南——准备篇文件服务器操作系统篇Windows Home Server 2011微软在今年早些时候发布了最新版本的Windows Home Server(WHS )。它的销售价通常不超过50美元。在市面上所有文件服务器操作系统当中,对于熟悉Windows 系列桌面操作系统,不大熟悉Unix 或Linux 的用户来说,WHS2011构建和管理起来最容易。如果你之前安装和配置过Windows XP、Vista 或7,就能安装和配置WHS2011,几乎不需要另外花心思。当然了,