深入浅出Nginx-负载均衡与反向代理实践之一
博客分类: Nginx/Tomcat
【Nginx简介】
Nginx(发音同engine x),是来自于俄罗斯的高性能web服务器和反向代理服务器。在国内有新浪、网易、豆瓣、迅雷等多家网站使用。
负载均衡(load balance):使用Nginx作为代理服务器,接收用户请求,并将其“均匀地转发”给多台内部web服务器,不会出现负载集中在某台服务器的现象。
反向代理(reverse proxy):标准的代理是用户使用代理软件访问互联网上的多台web服务器,而反向代理指的是多个用户使用代理服务器访问多台内部web服务器的模式。
使用Nginx的优点:
支持高并发访问:在生产环境下支持高达5万以上的并发连接数。
内存消耗少:在5万并发连接环境下,开启10个worker进程,仅仅消耗150M内存。
容易配置:配置文件便于学习、阅读。
成本低廉:Nginx是免费的开源软件,无须付费。
支持rewrite重写规则:Nginx使用pcre进行正则表达式匹配,根据请求域名、url的不同,将http请求分发给不同的后端服务器。
内建健康检查功能:Nginx能够检测某台后端服务器是否宕机,不影响用户访问。
节省带宽:可以对静态资源进行gzip高效压缩,而通常浏览器都具有gzip解压缩功能。
性能稳定:使用Nginx作为反向代理服务器,有效避免了网络攻击对后端服务器的影响,提高了安全性。
【安装Nginx】
一. 安装依赖包:
1. 安装pcre:对正则表达式的支持。
tar -zxvf pcre-8.33.tar.gz
Shell代码
cd pcre-8.33
./configure --prefix=/usr/local/pcre
make && make install
2. 安装zlib:对gzip压缩的支持。
Shell代码
tar -zxvf zlib-1.2.8.tar.gz
cd zlib-1.2.8
./configure --prefix=/usr/local/zlib
make && make install
3. 安装openssl:对ssl协议的支持。
Shell代码
tar -zxvf openssl-1.0.0.tar.gz
cd openssl-1.0.0
./config --prefix=/usr/local/openssl
make && make install
二. 安装Nginx:
1. 创建日志目录:
Shell代码
mkdir -p /opt/nginx/logs
2. 解压、配置:
Shell代码
tar -zxvf nginx-1.6.0.tar.gz
cd nginx-1.6.0
./configure --prefix=/usr/local/nginx \
--error-log-path=/opt/nginx/logs/error.log \
--http-log-path=/opt/nginx/logs/access.log \
--with-pcre=/software/pcre-8.33 \
--with-zlib=/software/zlib-1.2.8 \
--with-http_ssl_module \
--with-openssl=/software/openssl-1.0.0 \
--with-http_stub_status_module \
--with-http_realip_module \
--with-http_gzip_static_module \
--without-http_fastcgi_module \
--without-http_memcached_module \
--without-http_map_module \
--without-http_geo_module \
--without-http_autoindex_module \
--with-poll_module
说明:
1. 使用\:表示多个物理行同属一个逻辑行.
2. 日志文件:error.log存放Nginx的错误日志,access.log存放用户访问日志.
3. 依赖关系:pcre、zlib、openssl需要设置为源码位置,而不是安装位置.
3. 编译、安装:
Shell代码
make && make install
【最小配置】
1. 修改Nginx启动端口号:修改监听端口号为8080,因为只有root账号能够使用0-1024之间的端口号.
Shell代码
vi /usr/local/nginx/conf/nginx.conf
listen 8080;
2. 防火墙设置:开放8080端口
Shell代码
su - root
vi /etc/sysconfig/iptables
追加如下内容:
Shell代码
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
重启网卡:
Shell代码
service iptables restart
【启动、关闭】
1. 启动nginx:并指定配置文件,参数-c为configure
Shell代码
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
2. 关闭nginx:参数-s为signal
Shell代码
#等待worker进程处理完用户的当前请求,再进行关闭
/usr/local/nginx/sbin/nginx -s quit
#快速关闭
/usr/local/nginx/sbin/nginx -s stop
3. 使用kill命令关闭:关闭主进程(master process),从进程(worker process)随之消亡.
Shell代码
ps -ef | grep nginx
kill 21531
分享到:
相关推荐
《深入浅出Nginx之二【基本配置】》这篇博文主要探讨了Nginx的基础配置,涵盖了Nginx作为一款高性能的Web服务器和反向代理服务器如何进行配置以满足不同场景的需求。以下是对该文内容的详细解读: 1. **Nginx简介**...
誉天邹的《Nginx网站架构1-5》系列课程深入浅出地介绍了Nginx在网络架构中的关键作用及其配置优化技巧。通过对Nginx的学习和实践,不仅可以提升个人的技术能力,还能帮助企业构建更加稳定高效的网站系统。随着互联网...
《第7章 Nginx的Rewrite规则与实例》深入浅出地讲解了Nginx的URL重写功能。通过学习,用户可以理解正则表达式在Nginx中的应用,掌握如何制定和调试Rewrite规则,实现URL美化、路径重定向等功能。 《第11章 Nginx的...
在"实战Nginx:取代Apache的高性能Web服务器"中,作者张宴深入浅出地讲解了如何利用Nginx进行网站部署和优化。下面我们将围绕Nginx的核心特性、配置、反向代理、负载均衡以及与Linux系统的整合等关键知识点展开详细...
本书通过丰富的案例分析,深入浅出地介绍了Nginx的各种模块,旨在提升读者在实际工作中的配置和优化能力。 Nginx是一款高性能的HTTP和反向代理服务器,广泛应用于网站的负载均衡、静态文件处理、SSL终止等场景。其...
总之,《深入理解nginx模块开发与架构解析(第二版)》是一本深入浅出的Nginx技术专著,无论你是初学者还是经验丰富的开发者,都能从中获益,提升自己的Nginx技能。配合书中的高清PDF文档,你可以更直观地学习和查阅...
Nginx是目前广泛使用的高性能HTTP和反向代理服务器,它同时也是一个IMAP/POP3/SMTP代理服务器。...整体而言,这份技术指南对Nginx的应用技术作了深入浅出的介绍和详细的实例演示,是学习Nginx的一个不可多得的资源。
总结,《跟我学Nginx+Lua开发》这本书深入浅出地讲解了如何利用Nginx与Lua进行Web服务开发,无论你是运维人员、开发人员还是架构师,都能从中学习到实用的技能,提升你的Web服务开发水平。通过阅读本书,你可以掌握...
综上所述,《Nginx如何取代Apache》这本书深入浅出地介绍了如何利用Nginx的强大功能,替换Apache来提升Web服务器的性能和稳定性。通过理解两者的工作原理、核心特性,以及迁移和配置的步骤,读者可以成功地将网站从...
总之,这本书深入浅出地介绍了Nginx的各个方面,无论你是初学者还是经验丰富的系统管理员,都能从中受益,掌握Nginx的高级配置技巧,提升你的IT技能。通过学习这本书,你将能够充分利用Nginx来构建高效、稳定、安全...
《Nginx从入门到精通》是一本深入浅出、全面介绍Nginx服务器的教程。Nginx是一款高性能的HTTP和反向代理服务器,也是邮件传输代理服务器,以其轻量级、高并发处理能力而备受青睐。这本书旨在帮助读者快速掌握Nginx的...
本文将围绕“海量图片的分布式存储及负载均衡研究”这一主题,结合源码和工具,深入浅出地探讨相关知识点。 分布式存储是解决大数据问题的关键技术之一。它通过将数据分散存储在多个节点上,实现了高可用性、容错性...
这本书深入浅出地介绍了变量、数据类型、控制流、函数、模块、异常处理、面向对象编程等核心概念,同时也涉及了标准库的使用和文件操作。对于想要在Python编程领域打下坚实基础的读者来说,这是一个很好的起点。 在...
《实战Nginx:取代Apache的高性能Web服务器》这本书提供了深入浅出的讲解,帮助读者理解Nginx的工作原理以及如何将其应用于实际项目中。无论是对于初学者还是有一定经验的技术人员来说,都是一本不可多得的好书。...
4. **反向代理与负载均衡**:Nginx强大的反向代理功能使得它可以将请求分发到不同的后端服务器,实现负载均衡。书中会介绍如何配置负载均衡策略,如轮询、权重分配等。 5. **SSL/TLS安全设置**:在当前网络安全环境...
【Nginx简介】 Nginx(发音为 "engine-x")是一款高性能...教程会深入浅出地讲解每个知识点,确保即使是没有经验的新手也能轻松上手。在实践中不断探索和学习,你将能够灵活运用Nginx来构建高效、稳定的Web服务环境。
这个阶段的学习聚焦在Java架构设计与实施的核心技术上,通过深入浅出的教学方式,帮助学员提升在实际项目中的应用能力。 在提供的压缩包文件中,我们可以看到涉及到Nginx服务器的多个关键主题,这在现代Web应用程序...
- **反向代理和负载均衡**:Nginx的一大优势在于其反向代理功能和负载均衡能力,本书详细讲解了这些知识,并指出了一些常见的配置错误和陷阱。 ### OpenResty应用开发 - **Hello World示例**:通过一个简单的示例...