您的位置:首页 > 运维架构 > Nginx

nginx服务器配置

2014-03-17 20:45 8075 查看
好久了,一直在忙,忙着重复性代码,忙着去找生命中那个最重要的人,很是充实,虽然不再有代码的冲动感,但是那个人对于我带来的冲击不下于一个新的知识,新的技术的学习了,呵呵,也就这点出息了,好了,进入正题吧,nginx配置,因为最近在接手实验室所有服务器,也就是在说,也需要改行做网管了,哈哈,

还记得有一次师兄让我去部署一个新的网站版本,我傻傻的把一个缓存文件夹给删除了,那一顿骂啊,至今仍然记忆犹新,也不太清楚nginx的配置原理,唉,最近有了时间,就看了看,在此做下记录,其实都是拾人牙慧的东西,不值得一说,但对于我来说是全新的

先截个图吧,说明一下



1. user www-data说明的是使用的用户,至于www-data这个用户是系统自带的,我们不用说系统里没有这个账户的,虽然这个账户具体是做什么的,我也不太清楚

2.worker_processes 8 其中worker_processes的值一般是cpu的数量,但是我经过查看cpu的实际数量是4,也就是说可以不一样的

3.pid /var/run/nginx.pid 每次nginx运行时,nginx的主进程号是放在/var/run/nginx.pid文件当中的

4.events 笔者认为是nignx对待连接请求的态度,

4. use 后面的参数可以有 epoll; #提高linux的io操作选项,Linux系统推荐采用epoll模型,FreeBSD系统推荐采用kequeue 默认情况下使用的是select方法,但是该方法最大的限制是默认情况下,socket集合只有2048个,而epoll方法可以接受链接的数目是可以打开文件的最大数目,远远超过2048这个数字

5. worker_connections则是最大的连接数,根据上面的解释,该链接数一般情况下应该小于,上面的最大连接数,不同的是,这个数目我们能改,而use方法的,应该就是内嵌在内核当中了(只是猜测)

6.下面是主要的http节点了resolver 指定的是DNS服务器的地址

7. 说一下sendfile的作用,一般的网络传输要经过好几次的数据读取,从用户模式到内核模式,再从内核模式读取到用户模式,sendfile则是将硬盘上的数据放到kernel缓冲当中,然后拷贝到另一个相关的socket的内核缓冲区,没有了用户模式下和内核模式的切换这样就提高了性能

8.tcp_nopush,是将tcp_cork开关打开,而,该选项的作用是将接收来的数据,并不直接发送,而是等到数据达到上限时一起发送出去,而tcp_nodelay则是将接收到的数据直接发送出去,二者是相悖的虽然我不知道这里为什么俩都写上了

9.keepalive-timeout的含义是一个连接保持的最大时长

10.types_hash_max_size,为了快速找到相应的MIME类型,nginx使用散列存储文件扩展名和MIME type,types_hash_max_size就是影响散列的冲突率,该值越大,使用的内存越多,但是冲突就越小,检索速度越快(MIME是浏览器了解该文件的类型的标志,或者说这是文件扩展名的另外一种集合??)

11.终于说到我想要说的了,proxy_temp_path就是指定存储临时文件的目录,proxy_cache_path呢,就是指定缓存文件的目录,proxy_cache_path的完整定义是

proxy_cache_path /cache/proxy_cache_dir levels=1:2 keys_zone=cache_zone_one:256m inactive=1d max_size=1g

其中/cache/proxy_cache_dir呢就是设置缓存存放的目录地址,levels指定了该缓存的目录层数,keys_zone设置该缓存的名字,以及大小256MB,inactive:1d指的是如果一天内没有人访问,则会自动删除,max_size该缓存的最大空间

12.可以看到这里面是少了一个大括号的,并不是截图的问题

这样就完了,只是要说下,这里面的文件nginx.conf文件呢是放在/etc/nginx/nginx.conf中的内容,但是呢,对于某一个网站来说,还有另外一个特定的nignx.conf文件

这个文件呢,应该是放在某一特定文件夹下面的,该nginx.conf文件能自动追加到/etc/nginx/nginx.conf文件当中去所以我们可以仔细看一下,这里面的"{"是不成对的



这里不再像上面说的那么详细了,就直说几点吧

1.proxy_pass就是该nginx反向代理最终指向的那个服务器ip地址

2.proxy_cache指定的是该服务的缓存所在,cache_zone_one就是该缓存的名字,可以在上面的第十一步中找到

3.proxy_cache_valid 200 304 1d设置状态码是200 304的访问可以被放在缓存当中并且,有效时间是1天

4.现在说说purge模块的使用,purge呢,其作用在于清除缓存,使用方法就是在allow允许的IP地址列表中,允许使用http://location(替换成自己的域名)/purge/(资源地址),如果缓存中存在,访问完成之后机会出现 Purge Successfully 字样,反之,如果不存在就会出现404 NOT FOUND,该功能只是在允许的IP地址列表的客户端访问时才会出现
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: