1 / 16

轻量级 HTTP 服务器 / 反向代理服务器 nginx

轻量级 HTTP 服务器 / 反向代理服务器 nginx. 主讲人: 高俊峰. 华章培训网、 [www.hztraining.com] 华章培训网版权所有. 快速搭建一个基于 Nginx 的 Web 服务器系统 第一讲. 内容概述 nginx 的概念以及功能点 简单安装 nginx 配置一个简单的 Ningx 应用. 华章培训网、 [www.hztraining.com] 华章培训网版权所有. nginx 的概念以及功能点. 1 、 Nginx 的概念

adia
Download Presentation

轻量级 HTTP 服务器 / 反向代理服务器 nginx

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 轻量级HTTP服务器/反向代理服务器nginx 主讲人:高俊峰 华章培训网、[www.hztraining.com]华章培训网版权所有

  2. 快速搭建一个基于Nginx 的Web服务器系统第一讲 内容概述 nginx的概念以及功能点 简单安装nginx 配置一个简单的Ningx应用 华章培训网、[www.hztraining.com]华章培训网版权所有

  3. nginx的概念以及功能点 1、Nginx的概念 Nginx是一款高性能的HTTP和反向代理服务器软件,也是一个 IMAP/POP3/SMTP 代理服务器,可以运行在UNIX,GNU/Linux,BSD,Mac OS X, Solaris, 以及 Microsoft Windows等操作系统中。 2、Nginx与Apache的异同 相同点: 都是一个HTTP服务器软件。 功能实现上都采用模块化结构设计,都支持通用的语言接口,如PHP、Perl、Python等。 支持正、反向代理,虚拟主机,URL重写,压缩传输,SSL加密传输等。 不同点: Apache处理速度很慢,且占用很多内存资源,而Nginx却恰恰相反. Apache的所有模块都支持动、静态编译,而Nginx模块都是静态编译. Apache对Fcgi支持不好,而Nginx对Fcgi的支持非常的好.

  4. nginx的概念以及功能点 3、Nginx的优势 作为Web服务器,nginx处理静态文件、索引文件以及自动索引效率非常高。 作为代理服务器,Nginx可以实现反向代理加速。 作为负载均衡服务器,Nginx支持简单的容错和利用算法进行负载均衡。 在性能方面,Nginx采用内核Poll模型,可以支持更多的并发连接。 在稳定性方面,Nginx采取了分阶段资源分配技术,可以使CPU与内存的占用率非常低。 在高可用性方面,Nginx支持热部署,启动速度特别快,几乎可以做到7×24小时的不间断运行。

  5. 简单安装nginx 1、下载Nginx Nginx有三个版本:稳定版、开发版和历史稳定版,Nginx的官方网站是http://sysoev.ru/nginx/,英文主页为http://nginx.net,安装Nginx之前,确保系统已经安装了gcc、 openssl-devel、 pcre-devel和zlib-devel软件库。 2、安装Nginx所需的pcre-devel库 安装pcre库是为了使Nginx支持HTTP Rewrite 模块。下面进行安装,过程如下。 [root@localhost home]# tar zxvf pcre-8.02.tar.gz [root@localhost home]# cd pcre-8.02 [root@localhost pcre-8.02]#./configure [root@localhost pcre-8.02]#make [root@localhost pcre-8.02]#make install 3、安装Nginx [root@localhost home]# tar zxvf nginx-0.7.65.tar.gz [root@localhost home]#cd nginx-0.7.65 [root@localhostnginx-0.7.65]#./configure --with-http_stub_status_module --prefix=/opt/nginx [root@localhost nginx-0.7.65]#make [root@localhost nginx-0.7.65]#make install 在上面的configure选项中“--with-http_stub_status_module”可以用来启用 Nginx的NginxStatus 功能,以监控 Nginx 的当前状态。

  6. 配置一个简单的Ningx应用 1、Nginx配置文件结构

  7. 配置一个简单的Ningx应用 2、开始配置Nginx Nginx配置文件主要分成四部分: • main(全局设置) • server(主机设置) • upstream(负载均衡服务器设置) • location(URL匹配特定位置的设置)。 main部分设置的指令将影响其他所有设置;server部分的指令主要用于指定主机和端口;upstream指令主要用于负载均衡,设置一系列的后端服务器;location部分用于匹配网页位置。这四者之间的关系式:server继承main,location继承server,upstream既不会继承其他设置也不会被继承。

  8. 配置一个简单的Ningx应用 2、开始配置Nginx user nobody nobody; worker_processes 4; error_log logs/error.log notice; pid logs/nginx.pid; worker_rlimit_nofile 65535; events{ use epoll; worker_connections 65536; } worker_processes指定Nginx要开启的进程数。 error_log用来定义全局错误日志文件。日志输出级别有debug、info、notice、warn、error、crit可供选择,其中,debug输出日志最为最详细,而crit输出日志最少。 pid用来指定进程id的存储文件位置。 worker_rlimit_nofile用于绑定worker进程和CPU, Linux内核2.4以上可用。 events是设定Nginx的工作模式及连接数上限。 use用来指定Nginx的工作模式。对于Linux系统,epoll工作模式是首选。 worker_connections用于定义Nginx每个进程的最大连接数,默认是1024.最大客户端连接数由worker_processes和worker_connections决定,即为:Max_client=worker_processes*worker_connections

  9. 配置一个简单的Ningx应用 2、开始配置Nginx http{ include conf/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] ' '"$request" $status $bytes_sent ' '"$http_referer" "$http_user_agent" ' '"$gzip_ratio"'; log_format download '$remote_addr - $remote_user [$time_local] ' '"$request" $status $bytes_sent ' '"$http_referer" "$http_user_agent" ' '"$http_range" "$sent_http_content_range"'; access_log logs/www.ixdba.net.access.log main; client_max_body_size 20m; client_header_buffer_size 32K; large_client_header_buffers 4 32k; Sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 60; client_header_timeout 10; client_body_timeout 10; send_timeout 10;

  10. 配置一个简单的Ningx应用 2、开始配置Nginx 对上面配置参数含义解释如下: include实现对配置文件所包含的文件的设定,类似于Apache中的include方法。 default_type是设定默认类型为二进制流,也就是当文件类型未定义时使用这种方式。 log_format用于指定Nginx日志的输出格式。main为此日志输出格式的名称,可以在下面的access_log指令中引用。 access_log用来指定此虚拟主机的访问日志存放路径,最后的main用于指定访问日志的输出格式。 client_max_body_size用来设置允许客户端请求的最大的单个文件字节数。 client_header_buffer_size用于指定来自客户端请求头的headerbuffer大小。 large_client_header_buffers用来指定客户端请求中较大的消息头的缓存最大数量和大小, “4”为个数,“128K”为大小,最大缓存量为4个128K。 sendfile参数用于开启高效文件传输模式。将tcp_nopush和tcp_nodelay两个指令设置为on用于防止网络阻塞。 keepalive_timeout设置客户端连接保持活动的超时时间。 client_header_timeout设置客户端请求头读取超时时间。 client_body_timeout设置客户端请求主体读取超时时间。 send_timeout指定响应客户端的超时时间。

  11. 配置一个简单的Ningx应用 2、开始配置Nginx gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.1; gzip_comp_level 2; gzip_types text/plain application/x-javascript text/css application/xml; gzip_vary on; gzip用于设置开启或者关闭gzip模块,“on”表示实时压缩输出数据流。 gzip_min_length设置允许压缩的页面最小字节数,建议设置成大于1K的字节数,小于1K可能会越压越大。 gzip_buffers表示申请4个单位为16K的内存作为压缩结果流缓存。 gzip_http_version用于设置识别HTTP协议版本,默认是1.1。 gzip_comp_level用来指定GZIP压缩比,1 压缩比最小,处理速度最快;9 压缩比最大,传输速度快,但处理最慢,也比较消耗cpu资源。 gzip_types用来指定压缩的类型,无论是否指定,“text/html”类型总是会被压缩的。 gzip_vary 开启这个选项可以让前端的缓存服务器缓存经过GZIP压缩的页面。

  12. 配置一个简单的Ningx应用 2、开始配置Nginx server{ listen 80; server_name 192.168.12.188 www.ixdba.net; index index.html index.htm index.jsp; root /web/wwwroot/www.ixdba.net charset gb2312; server标志定义虚拟主机开始。 listen用于指定虚拟主机的服务端口。 server_name用来指定IP地址或者域名,多个域名之间用空格分开。 Index用于设定访问的默认首页地址。 root指令用于指定虚拟主机的网页根目录,这个目录可以是相对路径,也可以是绝对路径。 Charset用于设置网页的默认编码格式。

  13. 配置一个简单的Ningx应用 2、开始配置Nginx location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { root /web/wwwroot/www.ixdba.net; expires 30d; } URL地址匹配是进行Nginx配置中最灵活的部分。 location支持正则表达式匹配,也支持条件判断匹配,用户可以通过location指令实现Nginx对动、静态网页进行过滤处理。 上面这段表示所有扩展名以.gif、.jpg、.jpeg、.png、.bmp、.swf结尾的静态文件都交给nginx处理,而expires用来指定静态文件的过期时间,这里是30天。 location ~ ^/(upload|html)/ { root /web/wwwroot/www.ixdba.net; expires 30d; } 上面这段是将upload和html下的所有文件都交给nginx来处理,当然,upload和html目录包含在/web/wwwroot/www.ixdba.net目录中。

  14. 配置一个简单的Ningx应用 2、开始配置Nginx location ~ .*.jsp$ { index index.jsp; proxy_pass http://localhost:8080; } 上面这段是将所有以.jsp为后缀的文件都交给本机的8080端口处理。 location /NginxStatus { stub_status on; access_log logs/NginxStatus.log; auth_basic "NginxStatus"; auth_basic_user_file ../htpasswd; } 上面这段是启用Nginx的工作状态统计功能,access_log用来指定StubStatus模块的访问日志文件。auth_basic是Nginx的一种认证机制。auth_basic_user_file用来指定认证的密码文件。 error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root html; #这段代码是设置nginx错误页面信息。 } } }

  15. 启动与管理Nginx 1、检查Nginx配置文件的正确性 /opt/nginx/sbin/nginx –t 或者 /opt/nginx/sbin/nginx -t -c /opt/nginx/conf/nginx.conf “-t”参数用于检查配置文件是否正确,但并不执行。“-c”参数用于指定配置文件路径。 2、启动nginx Nginx的启动非常简单,只需输入: /opt/nginx/sbin/nginx 3、关闭nginx 如果要关闭Nginx进程,可以使用如下命令: kill -9 pid 平滑重启: kill -HUP ‘cat /opt/nginx/logs/nginx.pid‘

  16. 感谢您对华章培训网的支持! http://www. hztraining.com

More Related