Nginx介绍以及作用

1. Nginx介绍

(1) 什么是Nginx?

Nginx (engine x) 是一个高性能的 HTTP 和反向代理服务。Nginx 是由伊戈尔·赛索耶夫为俄罗斯访问量第二的 http://Rambler.ru 站点(俄文:Рамблер)开发的,第一个公开版本 0.1.0发布于 2004 年 10 月 4 日。

(2) Nginx的作用是什么?

Nginx 是一个很强大的高性能 Web 和反向代理服务,它具有很多非常优越的特性:在连接高并发的情况下,Nginx 是 Apache 服务不错的替代品:Nginx 在美国是做虚拟主机生意的老板们经常选择的软件平台之一。

2. 正向代理与反向代理区别

(1) 什么是正向代理?

正向代理,意思是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端才能使用正向代理。

(2) 什么是反向代理?

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

(3) 二者之间的区别是什么?

位置不同

正向代理,架设在客户机和目标主机之间;

反向代理,架设在服务器端;

代理对象不同

正向代理,代理客户端,服务端不知道实际发起请求的客户端;

反向代理,代理服务端,客户端不知道实际提供服务的服务端;

3. 安装Nginx

(1) 如何在Linux系统中安装Nginx?(写出步骤)

1 将 Nginx 安装包上传到 Linux 中

2 nginx 安装环境

◼ gcc ◼ PCRE ◼ zlib ◼ openssl

3 编译安装

4. 操作Nginx

(1) 如何启动Nginx?

cd /usr/local/nginx/sbin/

./nginx

(2) 如何停止Nginx?

方式 1,快速停止:

cd /usr/local/nginx/sbin

./nginx -s stop

此方式相当于先查出 nginx 进程 id 再使用 kill 命令强制杀掉进程。

方式 2,完整停止(建议使用):

cd /usr/local/nginx/sbin

./nginx -s quit

此方式停止步骤是待 nginx 进程处理任务完毕进行停止。

(3) 如何重启Nginx?

方式 1,先停止再启动(建议使用):

nginx 进行重启相当于先停止 nginx 再启动 nginx,即先执行停止命令再执行启动命令。 如下:

./nginx -s quit

./nginx

方式 2,重新加载配置文件:

nginx 的配置文件 nginx.conf 修改后,要想让配置生效需要重启 nginx,使用-s reload

不用先停止 nginx 再启动 nginx 即可将配置信息在 nginx 中生效,如下:

./nginx -s reload

5. 虚拟主机介绍

(1) 什么是虚拟主机?

虚拟主机是一种特殊的软硬件技术,它可以将网络上的每一台计算机分成多个虚拟主

机,每个虚拟主机可以独立对外提供 www 服务,这样就可以实现一台主机对外提供多个

web 服务,每个虚拟主机之间是独立的,互不影响的。

(2) Nginx支持哪三种虚拟主机配置?

1. 基于 IP 的虚拟主机

2. 基于端口的虚拟主机

3. 基于域名的虚拟主机

6. Linux绑定多IP

(1) 如何在Linux中绑定多IP?(写出步骤)

Linux 操作系统允许绑定多 IP。使用 IP 别名的方式,在一块物理网卡上可以绑定多个 lP 地址。这样就能够在使用单一网卡的同一个服务器上运行多个基于 IP 的虚拟主机。但是在绑定多 IP 时需要将动态的 IP 分配方式修改为静态的指定 IP

7. Nginx基于IP的虚拟主机配置

(1) 如何配置Nginx的基于IP访问的虚拟主机?(写出步骤)

这里以在一台Linux虚拟机上配置多个虚拟主机为例:

1.先修改虚拟主机的网卡信息,将动态ip修改为静态ip

2.在/etc/sysconfig/network-scripts目录下新增ifcfg-eth0:1(有n个ip就增加n-1个,因为原来有一个),里面修改ip和DEVICE名称即可

3.编辑nginx的nginx.conf配置文件

4.在server_name处 给定对应的其中一个ip地址,并在location中配置对应的路由访问息

5.然后再复制一个server,再在server_name处给定另外一个ip地址,再在location中配置对应的路由访问信息,有多个ip就重复以上操作即可

6.最后通过访问不同的ip可以得到不同的路由访问信息

8. Nginx基于端口的虚拟主机配置

(1) 如何配置Nginx的基于端口访问的虚拟主机?(写出步骤)

与上面不同的地方是,可以用相同ip不同的端口,也只需要在nginx的配置文件中将每个server监听端口修改成不同的即可,ip修改为对应ip

9. Nginx基于域名的虚拟主机配置

(1) 如何配置Nginx的基于域名访问的虚拟主机?(写出步骤)

与上面不同的是,这里需要多修改一个hosts文件,增加从域名到ip的映射关系,这样访问时就不会走DNS域名解析器,然后再修改nginx的配置文件,将server_name修改成对应的域名即可,location就不用说了,就修改成你想通过这个域名访问的资源路径

10. Nginx反向代理-配置反向代理

(1) 如何通过Nginx配置服务的反向代理?(写出步骤)_

比如安装两个 tomcat 服务,通过 nginx 反向代理。

tomcat 安装到 192.168.70.143 环境中。端口为 8080 与 9090

Nginx 安装在 192.168.70.144 环境中

此时只需要在nginx的配置文件中增加upstream属性,名称为tomcat_server1,里面给定server tomcat1的ip:端口,并在location中将root属性删除,修改为proxy_pass后面增加http://tomcat_server1,另外一个操作类似,主要端口不同,proxy_pass后面增加http://tomcat_server2即可

11. Nginx反向代理-配置负载均衡

(1) 什么是负载均衡?

负载均衡,英文名称为 Load Balance,其意思就是分摊到多个操作单元上 进行执行,例如 Web 服务器、FTP 服务器、企业关键应用服务器和其它关键任务 服务器等,从而共同完成工作任务。

(2) Nginx中所支持的负载均衡策略有哪些?

1.轮询(默认)

每个请求按时间顺序逐一分配到不同的后端服务器,如果后

端服务器 down 掉,能自动剔除。

2.指定权重

指定轮询几率,weight 和访问比率成正比,用于后端服务器

性能不均的情况。

upstream backserver {

server 192.168.0.14 weight=10;

server 192.168.0.15 weight=10;

}

3 IP 绑定 ip_hash

每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访

问一个后端服务器,可以解决 session 的问题。

upstream backserver {

ip_hash;

server 192.168.0.14:88;

server 192.168.0.15:80;

}

12. Nginx反向代理-HTTP协议代理

(1) 如何通过Nginx解决上传图片后无法回显的问题?

通过nginx进行http协议代理