Nginx学习系列之一

Posted 和君莫笑玩大数据

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx学习系列之一相关的知识,希望对你有一定的参考价值。

nginx 简介

1.1 Nginx 概述

Nginx ("engine x") 是一个高性能的 HTTP 和反向代理服务器,特点是占有内存少,并发能力强,事实上 nginx 的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用 nginx
网站用户有:百度、京东、新浪、网易、腾讯、淘宝等.

1.2 Nginx 作为 web 服务器

Nginx 可以作为静态页面的 web 服务器,同时还支持 CGI 协议的动态语言,比如 perl、 php
等。但是不支持 java。Java 程序只能通过与 tomcat 配合完成。Nginx 专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率 ,能经受高负载的考验,有报告表明能支持高
达 50,000 个并发连接数。详情,请参考:https://lnmp.org/nginx.html

1.3 正向代理

Nginx 不仅可以做反向代理,实现负载均衡。还能用作正向代理来进行上网等功能。
正向代理:如果把局域网外的 Internet 想象成一个巨大的资源库,则局域网中的客户端要访
问 Internet,则需要通过代理服务器来访问,这种代理服务就称为正向代理。

正向代理

1.4 反向代理

Nginx学习系列之一
反向代理

1.5 负载均衡

客户端发送多个请求到服务器,服务器处理请求,有一些可能要与数据库进行交互,服务器处理完毕后,再将结果返回给客户端。这种架构模式对于早期的系统相对单一,并发请求相对较少的情况下是比较适合的,成本也低。但是随着信息数量的不断增长,访问量和数据量的飞速增长,以及系统业务的复杂度增加,这种架构会造成服务器相应客户端的请求日益缓慢,并发量特别大的时候,还容易造成服务器直接崩溃。很明显这是由于服务器性能的瓶颈造成的问题,那么如何解决这种情况呢?单个服务器解决不了,我们增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的情况改为将请求分发到多个服务器上,将负载分发到不同的服务器,也就是我们所说的负载均衡。

Nginx学习系列之一
负载均衡

1.6 动静分离

为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器来解析,加快解析速
度。降低原来单个服务器的压力。

动静分离

2 Nginx 安装

2.1 nginx下载

官网:http://nginx.org/

2.2 安装 nginx

第一步, 安装 pcre

wget http://downloads.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz
#解压文件./configure 完成后,回到 pcre 目录下执行 make,再执行 make install

第二步, 安装 openssl
第三步, 安装 zlib

yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel

第四步, 安装 nginx

#1) 解压缩 nginx-xx.tar.gz 包。
#2) 进入解压缩目录, 执行./configure。
#3) make && make install
#查看开放的端口号
firewall-cmd --list-all
#设置开放的端口号
firewall-cmd --add-service=http –permanent 
sudo firewall-cmd --add-port=80/tcp --permanent
#重启防火墙
firewall-cmd –reload

3 nginx 常用的命令和配置文件

3.1 nginx 常用的命令:

(1)启动命令
在/usr/local/nginx/sbin 目录下执行

./nginx

(2)关闭命令
在/usr/local/nginx/sbin 目录下执行

./nginx -s stop

3) 重新加载命令
在/usr/local/nginx/sbin 目录下执行

./nginx -s reload

3.2 nginx.conf 配置文件

nginx 安装目录下,其默认的配置文件都放在这个目录的 conf 目录下,而主配置文件
nginx.conf 也在其中,后续对 nginx 的使用基本上都是对此配置文件进行相应的修改
配置文件中有很多#, 开头的表示注释内容,我们去掉所有以 # 开头的段落.
nginx.conf 配置文件分为三部分:

第一部分:全局块

从配置文件开始到 events 块之间的内容,主要会设置一些影响 nginx 服务器整体运行的配置指令,主要包括配置运行 Nginx 服务器的用户(组)、允许生成的 worker process 数, 进程 PID 存放路径、日志存放路径和类型以及配置文件的引入等。

worker_processes 1;//这是 Nginx 服务器并发处理服务的关键配置, worker_processes //值越大,可以支持的并发处理量也越多,但是
//会受到硬件、软件等设备的制约
第二部分:events 块
eg:
events{
worker_connections 1024;
}

events 块涉及的指令主要影响 Nginx 服务器与用户的网络连接,常用的设置包括是否开启对多 work process下的网络连接进行序列化,是否允许同时接收多个网络连接,选取哪种事件驱动模型来处理连接请求,每个 wordprocess 可以同时支持的最大连接数等。上述例子就表示每个 work process 支持的最大连接数为 1024.这部分的配置对 Nginx 的性能影响较大,在实际中应该灵活配置。

第三部分:http 块
http{
    include  mime.type;
    default_type  application/octet-stream;
    sendfile on;
    server{
       listen 80;
       server_name localhost;
       location / {
          root html;
          index index.html index.htm;

}
       error_page 500 502 503 504 /50x.html;
       location = /50x.html{
         root html;
}
}
}

这算是 Nginx 服务器配置中最频繁的部分,代理、缓存和日志定义等绝大多数功能和第三方模块的配置都在这里。
需要注意的是:http 块也可以包括 http 全局块、 server 块。

① http 全局块

http 全局块配置的指令包括文件引入、 MIME-TYPE 定义、日志自定义、连接超时时间、单链接请求数上限等。

②server 块
欢迎关注公众号

THE END

感谢阅读,写作不易,如果觉得本文对您有什么帮助的话,麻烦帮忙点个在看,当然转发的话,作者更加感激。再次感谢。


以上是关于Nginx学习系列之一的主要内容,如果未能解决你的问题,请参考以下文章

linux学习:Nginx--常见功能配置片段与优化-06

Gradle学习系列之一——Gradle快速入门

精品系列机器学习实战完整版区域房价中位数预测(挑战全网最全,没有之一,另附完整代码)

docker系列逐行解析Nginx镜像Dockerfile(学习经典)

nginx源码学习之一

Nginx——Nginx启动报错Job for nginx.service failed because the control process exited with error code(代码片段