Nginx——初识Nginx & Nginx环境搭建

简介: Nginx——初识Nginx & Nginx环境搭建

文章目录:


1.Nginx发展介绍

1.1 正向代理和反向代理

1.2 正向代理和反向代理举例

2.Nginx环境搭建

2.1 安装前的准备

2.2 上传下载好的压缩包

2.3 启动Nginx(三种方式)

2.4 关闭与重启Nginx

2.5 查看Nginx的版本号

1.Nginx发展介绍


Nginx engine x是一个高性能的Web服务器和反向代理服务器,也可以作为邮件代理服务器。


Nginx 特点是占有内存少,并发处理能力强,以高性能、低系统资源消耗而闻名,Nginx官方测试为5万并发请求。与Nginx同类型的Web服务器还有ApacheLighttpd(音同lighty)、Tengine(阿里巴巴的)等。Nginx 的并发处理能力在同类型的Web服务器中表现极好(ApacheLighttpd),在全世界范围内大量的网站使用了Nginx,国内互联网中也大量使用了Nginx,比如:淘宝、新浪、搜狐、网易、美团等。


Nginx是免费开源的,同时Nginx也有收费的商业版本,商业版本提供了性能优化、宕机等紧急问题处理等技术支持和服务。


1.1 正向代理和反向代理

  • 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器;
  • 正向代理类似一个跳板机,代理访问外部资源。比如:我是一个用户,我访问不了某网站,但是我能访问一个代理服务器,这个代理服务器,它能访问那个我不能访问的网站,于是我先连上代理服务器,告诉它我需要那个无法访问网站的内容,代理服务器去取回来,然后返回给我。


1.2 正向代理和反向代理举例


  • 正向代理:

比如你现在缺钱,想找马云爸爸去借钱,可想而知人家可能鸟都不鸟你,到最后碰一鼻子灰借不到钱。不过你认识你家隔壁老王,而老王认识马云同志,而且关系还很好。这时候你托老王去找马云借钱,当然这事最后成了,你从马云那里借到了500万!这时候马云并不知道钱是你借的,只知道这钱是老王借的。最后由老王把钱转交给你。在这里,老王就充当了一个重要的角色:代理。

此时的代理,就是我们常说的正向代理。代理客户端去请求服务器,隐藏了真实客户端,服务器并不知道真实的客户端是谁。正向代理应用最广泛的莫过于现在的某些科学上网工具,你访问不了谷歌、Facebook的时候,你可以在国外搭建一台代理服务器,代理你访问,代理服务器再把请求到的数据转交给你,你就可以看到内容了。

  • 反向代理:

比如你现在很无聊,想找人聊天,这时候你拨通了联通客服10010电话,联通的总机可能随机给你分配一个闲置的客服给你接通。这时候你如愿以偿的和客服聊了起来,问了问她目前有没有结婚、有没有对象、家住哪里、她的微信号、她的手机号。。。

此时联通总机充当的角色就是反向代理,你只知道和客服接通并聊了起来,具体为什么会接通这个客服MM,怎么接通的,你并不知道。

反向代理隐藏了真正的服务端,就像你每天使用百度的时候,只知道敲打www.baidu.com就可以打开百度搜索页面,但背后成千上万台百度服务器具体是哪一台为我们服务的,我们并不知道。我们只知道这个代理服务器,它会把我们的请求转发到真实为我们服务的那台服务器那里去。


综上所述:正向代理代理对象是客户端,反向代理代理对象是服务端。

在我们正常访问服务器时,我们客户端可以直接访问,如下图

但是,当我们有大量的请求访问服务器时,我们的服务器会承受不了,我们可以通过提升服务器的配置,但是不能从根本上解决问题,于是我们就增加服务器的数量,如果请求很多,一台服务器处理不了,我们来可以多来两台,而这三台服务器怎么处理请求大量的请求呢,这就是负载均衡了,通过反向代理实现。(这里的反向代理服务器就是Nginx,它并不处理客户端发来的请求,而只是做一个请求转发)

2.Nginx环境搭建


免费开源版的官方网站:http://nginx.org

Nginx Windows 版本和Linux 版本,但更推荐在 Linux 下使用 Nginx


2.1 安装前的准备

Nginx的安装需要确定Linux安装相关的几个库,否则配置和编译会出现错误,具体的检查安装过程为:

gcc编译器是否安装

        检查是否安装:yum list installed | grep gcc

        执行安装:yum install gcc -y

openssl库是否安装

        检查是否安装:yum list installed | grep openssl

        执行安装:yum install openssl openssl-devel -y

pcre库是否安装

        检查是否安装:yum list installed | grep pcre

        执行安装:yum install pcre pcre-devel -y

zlib库是否安装

        检查是否安装:yum list installed | grep zlib

        执行安装:yum install zlib zlib-devel -y

一次性安装,执行如下命令

yum install gcc openssl openssl-devel pcre pcre-devel zlib zlib-devel -y(执行此命令即可)


2.2 上传下载好的压缩包

这里你可以使用 rz -y 命令来上传压缩包。也可以使用Xftp来上传,都可以,我这里就不再演示了。


·       上传完成之后,使用 tar -zxvf nginx-1.20.1.tar.gz 命令进行解压即可。

·       解压完毕之后,cd nginx-1.20.1 进入nginx的主目录下,执行命令:./configure --prefix=/usr/local/nginx (其中--prefix是指定nginx安装路径) 注意:等号左右不要有空格

·       之后,执行命令进行编译:make

·       之后,执行命令进行安装:make install

·       安装成功后,可以切换到/usr/local/nginx目录下,查看内容


2.3 启动Nginx(三种方式)

切换到nginx安装目录的sbin目录下,执行:./nginx

通过配置文件启动:

./nginx -c /usr/local/nginx/conf/nginx.conf

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

其中-c是指定配置文件,而且配置文件路径必须指定绝对路径

启动成功之后,可以使用 ps -ef | grep nginx 查看进程。

nginx 体系结构由 master 进程和其worker 进程组成

        master 进程读取配置文件,并维护 worker 进程,而 worker 进程则对请求进行实际处理

        Nginx启动后,安装目录下会出现一些_tmp结尾的文件,这些是临时文件,不用管。

在浏览器中输入 http:// + 你自己虚拟机的ip地址即可访问Nginx服务器,出现以下界面:

在访问Nginx服务器的时候,一定要记得关闭虚拟机的防火墙,要不然是访问不到的。关闭防火墙的命令如下:

2.4 关闭与重启Nginx

重启Nginx的命令:./nginx -s reload。如果是配置文件启动,则应该为:/usr/local/nginx/sbin/nginx -s reload


2.5 查看Nginx的版本号


Linux上查看nginx版本:/usr/local/nginx/sbin/nginx -V

-v (小写的v)显示nginx 的版本

-V (大写的V)显示nginx 的版本、编译器版本和配置参数

 

相关文章
|
6月前
|
应用服务中间件 PHP 开发工具
Nginx解析环境搭建及实战
Nginx解析环境搭建及实战
56 0
|
Web App开发 关系型数据库 应用服务中间件
|
负载均衡 应用服务中间件 Linux
CentOS7下python3+Flask+uWSGI+Nginx+Supervisor环境搭建
在生产环境中通常用uwsgi作为Flask的web服务网关,通过nginx反向代理进行负载均衡,通过supervior进行服务进行的管理。这一套搭下来还是有一些坑要踩,本文通过一个简单的Flask web应用记录了CentOS7下python3+Flask+uWSGI+Nginx+Supervisor环境搭建的全过程,以及一些注意事项,以免遗忘。
320 0
|
缓存 Java 应用服务中间件
CentOS 基础环境搭建(Nginx、Git、Lrzsz)
CentOS 基础环境搭建(Nginx、Git、Lrzsz)
108 0
|
监控 网络协议 应用服务中间件
手把手教你nginx生产环境下高可用环境搭建
手把手教你nginx生产环境下高可用环境搭建
613 0
手把手教你nginx生产环境下高可用环境搭建
|
应用服务中间件 Linux 程序员
【服务器环境搭建】Linux安装Nginx
最近要部署一个项目 但是不能用 宝塔面板 啊这!赶快学习学习Linux安装Nginx!
287 0
|
Java 应用服务中间件 Linux
Linux java基础环境搭建 -> nginx
Linux java基础环境搭建 -> nginx
127 0
|
Ubuntu Linux Go
Ubuntu 基于Nginx1.8的Golang环境搭建(Ubuntu 20.04 + Nginx1.8 + Golang 1.17 )
Ubuntu 基于Nginx1.8的Golang环境搭建(Ubuntu 20.04 + Nginx1.8 + Golang 1.17 )
157 0
Ubuntu 基于Nginx1.8的Golang环境搭建(Ubuntu 20.04 + Nginx1.8 + Golang 1.17 )
|
负载均衡 监控 关系型数据库
一个nginx服务器+多个nacos服务(集群)+mysql数据库的环境搭建
一个nginx服务器+多个nacos服务(集群)+mysql数据库的环境搭建
一个nginx服务器+多个nacos服务(集群)+mysql数据库的环境搭建
|
Java 应用服务中间件 Linux
【Linux】Linux服务器(centos7)环境搭建java/python3/nginx
1. 用的服务器是阿里云服务器,系统是CentOS7,远程连接工具是 Xshell 和 Xftp 2. 搭建java环境,我用的是jdk1.8   需要 jdk-8u181-linux-x64.tar.gz,在自己电脑上下载,然后用Xftp传到服务器上,保存在usr/local文件夹下,解压。
1509 0