nginx

Nginx

nginx是什么

nginx就是一个反向代理服务器

Nginx主要是用于实现什么?

nginx主要用于反向代理、负载均衡、动静分离、高可用集群,

nginx的主要特点

nginx的主要特点就是占用内存小,访问并发高,正常并发访问可以达到5万/s

一、反向代理

说到反向代理我们就先来说下正向代理是什么

1、正向代理

正向代理就是用户想去访问服务器是不能直接访问的,必须需要客户端去配置服务器,才能进行访问,

2.反向代理

反向代理就是用户想要去访问真实服务器也是访问不到的,但他不像正向代理那样需要在客户端进行配置,只需要添加一个反向代理服务器,让用户直接去访问反向代理服务器,然后反向代理服务器帮我们去调用真实服务器,所以说客户会以为访问的服务器是真实服务器.这样可以有效的保证了真实服务器的安全性.

二、负载均衡

负载均衡是什么

把多台服务器访问压力平均分配

三、动静分离

动静分离是什么

把动态资源(JSP,Servlet)放在服务器当中,把静态资源(html,CSS,js)放在处理静态资源的静态服务器,实现动静分离

nginx在linux系统进行安装

1.第一步(下载nginx)

在官网(http://nginx.org)去下载一个nginxLinux系统版本的

2.第二步(下载其他需要关联的依赖)

下载其他需要关联的依赖(pcre,openssl,zlib,nginx)

下载并安装(pcre)

2.1.第一种方式

wget (下载网址)

2.2.第二种方式(重点)

yum -y install(下载依赖名称)

3.第三步(解压)

下载完之后放在一个专属目录下,进行解压
tar -xvf 依赖包

4.第四步(编译和检查操作)

进入依赖目录,输入./Configure进行编译和检查操作

5.第五步(编译和安装)

在依赖目录下使用make && make install 进行编译和安装

6.第六步(验证)

在依赖目录下 执行pcre-config --version 查看版本号

一般采用第二种方式,直接下载安装编译

7.第七步(安装nginx)

跟上第二开始到第五步一样的

8.第八步(启动)

在usr/目录下多出来一个local/nginx,在sbin里面是启动脚本
启动 ./nginx

一般具有防火墙,需要允许那个端口进行访问

如何查询防火墙允许访问的端口号

firewall-cmd --list-all
查询完命令之后,在ports(开发的端口号)下查看

设置开放的端口号

sudo firewall-cmd --add-port=80/tcp --permanent

重启防火墙

firewall-cmd --reload

nginx在linux常用的命令

需要在/usr/local/nginx/sbin下目录输入命令

查看nginx版本号

./nginx -v

查看nginx服务状态

ps -ef | grep nginx

启动nginx

./nginx

重启nginx

./nginx -s reload

关闭nginx

./nginx -s stop

nginx在windows常用的命令

启动

start nginx

关闭

nginx -s stop

重启

nginx -s reload

nginx配置文件

在usr/local/nginx/conf/目录下的nginx.conf

打开nginx.conf配置文件

vi nginx.conf

nginx配置文件主要分为三个部分

第一部分,全局块

全局块是从开头到不包含events往上的代码称为全局块
主要会设置一些影响nginx服务器整体运行的配置指令
比如worker processes 1 代表的是nginx处理并发的数量

第二部分,events

events模块内
主要影响nginx服务器与用户的网络连接
比如 worker_connections 1024; 支持的最大连接数

第三部分,http(重点)

最主要的配置,配置虚拟服务器

http全局块 ,server块

nginx配置实例(反向代理)

1.第一步

先下载一个tomcat,放在linux系统目录下

2.第二步解压

tar -xvf tomcat名称

3.第三步(启动)

进入tomcat/bin目录 输入./startup.sh

4.第四步(检查启动状态)

去tomcat/logs日志 输入tail -f cataline.out

防火墙如果为开放端口,需开放端口

看操作往上走

5.第五步

http://ip:端口号/跳转到tomcat页面

具体步骤

在默认目录下Windows/System32/drivers/etc文件中找到HOSTS
在HOSTS里进行配置 ip + 域名

1.第一步

在nginx里,去编辑配置server.conf

编辑代码

server {
listen: 端口号;
server_name: ip地址;
localhost / {
root html;

    proxy_pass 访问地址(http://ip地址:端口号);
    index 首页
}

}

需求:使用nginx反向代理,根据访问的路径跳转到不同端口的服务中,nginx监听端口为9001. 访问http://127.0.0.1:9001/edu/直接跳转到127.0.0.1:8080 访问http://127.0.0.1:9001/vod/直接跳转到127.0.0.1:8081

1.第一步

在系统中建立一个目录 mkdir tomcat8080 mkdir tomcat8081 用于保存多个tomcat

2.第二步

解压,安装,编译,启动 顺便把防火墙开启端口

3.第三步

去tomcat/conf/server.xml目录下 修改端口号

4.第四步

在tomcat/webapps/分别创建/edu/ 和/vod/文件 里放测试html网页

5.第五步

在nginx里的conf/nginx.conf下修改配置

修改配置

-- server {
listen 9001;
server_name ip地址
localhost ~ /edu/ {
proxy_pass 访问地址(http://ip地址:端口号);
}
}

扩展

~正则表达式 需包含你后面的路线名称 区分大小写
~*正则表达式 需包含你后面的路线名称 不区分大小写

配置负载均衡

upstream (自定义名称){
server ip:端口号(127.0.0.1:8080)
server ip:端口号(127.0.0.1:8081)
}
-- server {
listen 9001;
server_name ip地址;
localhost ~ /edu/ {

proxy_pass http://(和upstream定义的自定义名称);
}
}

负载均衡策略

轮询(默认)

权重

upstream (自定义名称){
server ip:端口号(127.0.0.1:8080) weight=比例(一般按总数10占比)
server ip:端口号(127.0.0.1:8081) weight=比例(一般按总数10占比)
}

iphash

upstream (自定义名称){
iphash;
server ip:端口号(127.0.0.1:8080)
server ip:端口号(127.0.0.1:8081)
}
第一次访问的结果是什么端口号,下次就一直是哪个端口号

fair

upstream (自定义名称){

server  ip:端口号(127.0.0.1:8080)
server ip:端口号(127.0.0.1:8081)

fair;
}
根据响应时间来进行分配,谁短谁分配

nginx动静分离

1.第一步准备

在首目录下创建一个文件夹 mkdir data
在data里在创建静态资源和动态资源 mkdir www(静态) mkdir images(动态),分别存放不同资源

2.第二步

在nginx.conf配置
server {
listen 80;
server_name ip
location 路径(/www/) {
root 文件目录(/data/);
index index.html index.htm;
}
location 路径(/images/) {
root 文件目录(/data/);
autoindex on;
}
}

每次配置完都重启启动一下

面试题

nginx主要用来干什么的

nginx主要用于反向代理、负载均衡、动静分离、高可用集群,

你为什么使用nginx

nginx因为他占用内存少,支持并发能力高

正向代理和反向代理的区别

正向代理的话,客户端需要自己配置服务器,进行访问,而反向代理确不需要进行配置,
正向代理主要的是起到了保护客户的真实数据,而反向代理主要是保护了真实服务器的信息
正向代理是用户知道我想要访问的服务器是谁,反向代理是用户并不知道访问的服务器是谁

你可能感兴趣的:(nginx)