跳至主要內容

初体验Nginx

刘春龙原创...大约 4 分钟LinuxNginxWEB服务器教程文档

Nginx 是一款轻量级的 Web 服务器、反向代理服务器,由于它的内存占用少,启动极快,高并发能力强,在互联网项目中广泛应用。

Nginx 专为性能优化而开发,使用异步非阻塞事件驱动模型。

除了 Nginx 外,其他常见的服务器还有 Apache、Tomcat……

Nginx 四大应用场景

HTTP 服务器

Nginx 本身也是一个静态资源的服务器,当只有静态资源的时候,就可以使用 Nginx 来做服务器,如果一个网站只是静态页面的话,那么就可以通过这种方式来实现部署。

反向代理

反向代理应该是 Nginx 使用最多的功能了,反向代理(Reverse Proxy)方式是指以代理服务器来接受 internet 上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给 internet 上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。

负载均衡

负载均衡也是 Nginx 常用的一个功能,负载均衡其意思就是分摊到多个操作单元上进行执行,例如 Web 服务器、FTP 服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。

动静分离

动静分离是让动态网站里的动态网页根据一定规则把不变的资源和经常变的资源区分开来,动静资源做好了拆分以后,我们就可以根据静态资源的特点将其做缓存操作,这就是网站静态化处理的核心思路。

为什么用 Nginx

背景

互联网飞速发展的今天,大用户量高并发已经成为互联网的主体,怎样能让一个网站能够承载几万个或几十万个用户的持续访问呢?

单机架构

Tomcat 默认配置的最大请求数是 150,也就是说同时支持 150 个并发。具体能承载多少并发,须要看硬件的配置,线程 CPU 越多性能越高,分配给 JVM 的内存越多性能也就越高,但也会加剧 GC 的负担。

对于这种简单的、用户访问量不大的网站应用,Tomcat 是可以的,但是随当用户访问量增加,Tomcat 就无法支撑起服务了,应该怎么办呢?

引入反向代理实现负载均衡

负载均衡就是一个 web 服务器解决不了的问题可以通过多个 web 服务器来平均分担压力来解决,并发过来的请求被平均分配到多个后台 web 服务器来处理,这样压力就被分解开来。

nginx 总结

  • 它可以高并发连接,官方测试能够支撑 5 万并发连接,在实际生产环境中可以支撑 2 到 4 万并发连接。
  • 内存消耗少
  • 购买 F5 BIG-IP ,NetScaler 等硬件负载均衡交换机需要 10 多万甚至几十万人民币。而 Nginx 为开源软件,可以免费试用,并且可用于商业用途。
  • 内置的健康检查功能:如果 Nginx proxy 后端的某台服务器宕机了,不会影响前端访问。
  • 节省带宽,支持 gzip 压缩。
  • 稳定性高:用于反向代理(负载均衡),宕机的概率微乎其微。
  • 支持热部署。在不间断服务的情况下,对软件版本升级。

安装 Nginx

下载

去官方下载 Nginx 源码文件 http://nginx.org/download/nginx-1.22.1.tar.gzopen in new window

也可以直接

wget -P /opt http://nginx.org/download/nginx-1.22.1.tar.gz

上传

将上传的文件上传到/usr/opt 目录下

解压

将 opt 目录下的文件解压到 /usr/local 目录下

tar -zxvf nginx-1.22.1.tar.gz -C /usr/local/

安装构建工具和库文件

这些工具和库文件将允许您构建和编译 Nginx

sudo apt-get install build-essential libpcre3 libpcre3-dev zlib1g-dev libssl-dev

配置和编译 Nginx

cd /usr/local/nginx-1.22.1
./configure --with-http_ssl_module
make
sudo make install

此时,你会在 /usr/local 目录下看到 nginx 文件夹(可删除 /opt 下的压缩包和/usr/local 下的解压文件夹 nginx-1.22.1

启动 Nginx

cd /usr/local/nginx
./sbin/nginx

此时访问: http://47.92.214.203:80open in new window (服务器地址的 80 端口),你就会看到如下页面(如果访问不到,请检查服务器的端口和防火墙配置)

nginx 文件夹目录详解

conf:所有的配置文件
html:站点(项目目录)
logs:日志文件access.log,error.log,nginx.pid
sbin:只有一个二进制文件(控制启动、停止等)

上次编辑于:
贡献者: 刘春龙
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v2.15.7