nginx学习

一、 Nginx 介绍

1 Nginx 简介

Nginx (engine x) 是一个高性能的 HTTP 和反向代理服务。Nginx 是一个很强大的高性能 Web 和反向代理服务,它具有很多非常优越的特性:在连接高并发的情况下,Nginx 是 Apache 服务不错的替代品

2 Nginx 作用

2.1 http 协议代理

2.2 搭建虚拟主机

2.3 服务的反向代理

2.4 在反向代理中配置集群的负载均衡

二、 代理方式

1 正向代理

正向代理,意思是一个位于客户端和原始服务器(origin server)之间的服务器,为了从

原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原

始服务器转交请求并将获得的内容返回给客户端。客户端才能使用正向代理。

2 反向代理

反向代理(Reverse Proxy)方式是指以代理服务器来接受 internet 上的连接请求,然

后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给 internet 上请求连

接的客户端,此时代理服务器对外就表现为一个反向代理服务器。

3 二者之间的区别

位置不同

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

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

代理对象不同

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

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


三、 安装 Nginx

1 将 Nginx 安装包上传到 Linux 中

2 nginx 安装环境

gcc

yum install gcc-c++

PCRE

yum install -y pcre pcre-devel

zlib

yum install -y zlib zlib-devel

openssl

yum install -y openssl openssl-devel

3 编译安装

解压:tar -zxvf nginx-1.8.0.tar.gz

3.1 配置安装参数

./configure

./configure \

--prefix=/usr/local/nginx \

--pid-path=/var/run/nginx/nginx.pid \

--lock-path=/var/lock/nginx.lock \

--error-log-path=/var/log/nginx/error.log \

--http-log-path=/var/log/nginx/access.log \

--with-http_gzip_static_module \

--http-client-body-temp-path=/var/temp/nginx/client \

--http-proxy-temp-path=/var/temp/nginx/proxy \

--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \

--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \

--http-scgi-temp-path=/var/temp/nginx/scgi

注意:上边将临时文件目录指定为/var/temp/nginx ,需要在/var 下创建 temp 及 及 nginx目录

3.2 编译安装

编译:make

编译安装 make install

四、 操作 Nginx

1 启动 nginx

cd /usr/local/nginx/sbin/

./nginx

2 停止 nginx

完整停止(建议使用):

cd /usr/local/nginx/sbin

./nginx -s quit

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

3 重启 nginx

./nginx -s quit

./nginx

测试

五、 Nginx 的使用

1 配置虚拟主机的几种方式

1. 基于 IP 的虚拟主机

2. 基于端口的虚拟主机

3. 基于域名的虚拟主机

基于 IP 的虚拟主机配置方式: 创建两个html文件 并改名为html2 html22

Linux 绑定多 IP

cd/usr/local/nginx/html 复制两份 分别换成自己id名字 例如 html2 html22 然后进入下级子目录 index.html 修改jsp页面标题

cd /etc/sysconfig/network-scripts—>vim ifcfg-ens33 把动态IP修改成静态IP 没有的话加进去 默认动态

IP 绑定/etc/sysconfig/network-scripts/ifcfg-eth0(ens33 cent7) 复制一份 cp ifcfg-ens33 ifcfg-ens33:1 修改内容 DEVICE=eth33:1

IPADDR=192.168.142.22


Nginx基于IP的虚拟主机配置 (如何配置Nginx的基于IP访问的虚拟主机?)

配置nginx的nginx.conf文件 把其中的 user root;修改,

server_name 192.168.142.2; 修改成自己的虚拟机IP

root html2 修改成自己的html名称(复制改名的) 一个虚拟主机就是一个server 复制一个加进配置文件。 修改同上


Nginx基于端口的虚拟主机配置(如何配置Nginx的基于端口访问的虚拟主机?)

首先cp html html8080 cp html9090 然后进入nginx.conf修改配置 直接添加两个端口信息就行了 修改localtion 里的 root html8080 root html9090


1Nginx基于域名的虚拟主机配置(如何配置Nginx的基于域名访问的虚拟主机)

首先先创建两个html目录 改成相对应的名字 然后修改window下的配置文件

C:\Windows\System32\drivers\etc 里面加入自己的IP和域名 进行解析

nginx下修改nginx.conf文件

2 Nginx 中配置服务的反向代理

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

本案例中使用两台虚拟机演示。

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

Nginx 安装在 192.168.70.144 环境中

具体步骤:

安装两个tomcat 分别修改端口,然后和nginx分别处于不同的虚拟机 在nginx.conf中配置upstream tomcat_server1{

server 192.168.70.143:8080;}

upstream tomcat_server2{

server 192.168.70.143:9090;

}

在location里配置

#用于指定访问根目录时,访问虚拟主机的 web 目录

proxy_pass tomcat_server1;


在反向代理中配置负载均衡

1 什么是负载均衡

意思就是分摊到多个操作单元上进行执行

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;

}

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

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

注意:nginx 与 VSFTPD 必须安装到同一个环境中。

修改resource.properties文件 HTTP_BASE_PATH=img.bjsxt.com

修改 nginx.conf server_name img.bjsxt.com;

修改系统中的hosts

测试结果


(由于还要修改centos 6.5 着实分不出太多时间书写)

发布于 2019-06-25