在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。 为什么要用Nginx? 目前 Nginx 的主力竞争对手莫过于 Apache ,在这里小编对两者做一个简单的对比,帮助大家更好的理解 Nginx 的优势。 1、作为 Web 服务器: 相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率,这点使 Nginx 尤其受到虚拟主机提供商的欢迎。在高连接并发的情况下,Nginx是Apache服务器不错的替代品: Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一,能够支持高达 50000 个并发连接数的响应, 感谢Nginx 为我们选择了 epoll and kqueue 作为开发模型。 Nginx作为负载均衡服务器: Nginx 既可以在内部直接支持 Rails 和 PHP 程序对外进行服务, 也可以支持作为 HTTP代理 服务器对外进行服务。Nginx采用C进行编写, 不论是系统资源开销还是CPU使用效率都比 Perlbal 要好很多。 2、Nginx 配置简洁, Apache 复杂: Nginx 启动特别容易, 并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动. 你还能够不间断服务的情况下进行软件版本的升级。 Nginx 静态处理性能比 Apache 高 3倍以上,Apache 对 PHP 支持比较简单,Nginx 需要配合其他后端来使用 ,Apache 的组件比 Nginx 多。 3、最核心的区别在于: apache是同步多进程模型,一个连接对应一个进程;nginx是异步的,多个连接(万级别)可以对应一个进程 。 4、两者的擅长领域分别是: nginx的优势是处理静态请求,cpu内存使用率低,apache适合处理动态请求,所以现在一般前端用nginx作为反向代理抗住压力,apache作为后端处理动态请求。 Nginx 基本使用方法 系统平台:CentOS release 6.6 (Final) 64位。 一、安装编译工具及库文件 二、首先要安装 PCRE 1、PCRE 作用是让 Nginx 支持 Rewrite 功能。下载 PCRE 安装包,下载地址: http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz
2、解压安装包: 3、进入安装包目录 4、编译安装 5、查看pcre版本
三、安装 Nginx 1、下载 Nginx,下载地址:http://nginx.org/download/nginx-1.6.2.tar.gz
2、解压安装包 3、进入安装包目录 4、编译安装 5、查看nginx版本
到此,nginx安装完成。 四、Nginx 配置 创建 Nginx 运行使用的用户 www: 配置nginx.conf ,将/usr/local/webserver/nginx/conf/nginx.conf替换为以下内容 检查配置文件ngnix.conf的正确性命令:
五、启动 Nginx Nginx 启动命令如下: 六、访问站点 从浏览器访问我们配置的站点ip: Nginx 常用指令说明 1. main 全局配置 nginx在运行时与具体业务功能(比如http服务或者email服务代理)无关的一些参数,比如工作进程数,运行的身份等。 woker_processes 2 worker_cpu_affinity worker_connections 2048 worker_rlimit_nofile 10240 use epoll 2. http服务器 与提供http服务相关的一些配置参数。例如:是否使用keepalive啊,是否使用gzip进行压缩等。 sendfile on keepalive_timeout 65 : 长连接超时时间,单位是秒,这个参数很敏感,涉及浏览器的种类、后端服务器的超时设置、操作系统的设置,可以另外起一片文章了。长连接请求大量小文件的时候,可以减少重建连接的开销,但假如有大文件上传,65s内没上传完成会导致失败。如果设置时间过长,用户又多,长时间保持连接会占用大量资源。 send_timeout : 用于指定响应客户端的超时时间。这个超时仅限于两个连接活动之间的时间,如果超过这个时间,客户端没有任何活动,Nginx将会关闭连接。 client_max_body_size 10m client_body_buffer_size 128k 模块http_proxy: 这个模块实现的是nginx作为反向代理服务器的功能,包括缓存功能(另见文章) proxy_connect_timeout 60 proxy_read_timeout 60 proxy_buffer_size 4k proxy_buffers 4 32k proxy_busy_buffers_size 64k proxy_max_temp_file_size proxy_temp_file_write_size 64k proxy_pass,proxy_redirect见 location 部分。 模块http_gzip: gzip on : 开启gzip压缩输出,减少网络传输。
3. server虚拟主机 http服务上支持若干虚拟主机。每个虚拟主机一个对应的server配置项,配置项里面包含该虚拟主机相关的配置。在提供mail服务的代理时,也可以建立若干server。每个server通过监听地址或端口来区分。 listen server_name 模块http_stream 这个模块通过一个简单的调度算法来实现客户端IP到后端服务器的负载均衡,upstream后接负载均衡器的名字,后端realserver以 host:port options; 方式组织在 {} 中。如果后端被代理的只有一台,也可以直接写在 proxy_pass 。 4. location http服务中,某些特定的URL对应的一系列配置项。 root /var/www/html index index.jsp index.html index.htm proxy_pass http:/backend proxy_redirect off; 这四个暂且这样设,如果深究的话,每一个都涉及到很复杂的内容,也将通过另一篇文章来解读。 关于location匹配规则的写法,可以说尤为关键且基础的,参考文章 nginx配置location总结及rewrite规则写法; 5. 其它 5.1 访问控制 allow/deny Nginx 的访问控制模块默认就会安装,而且写法也非常简单,可以分别有多个allow,deny,允许或禁止某个ip或ip段访问,依次满足任何一个规则就停止往下匹配。如: 我们也常用 httpd-devel 工具的 htpasswd 来为访问的路径设置登录密码: 这样就生成了默认使用CRYPT加密的密码文件。打开上面nginx-status的两行注释,重启nginx生效。 5.2 列出目录 autoindex Nginx默认是不允许列出整个目录的。如需此功能,打开nginx.conf文件,在location,server 或 http段中加入autoindex on;,另外两个参数最好也加上去:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持极客世界。 |
请发表评论