Nginx简单了解

Nginx简单了解

一:Nginx介绍

1:基本信息

Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。
Nginx 解决了服务器的C10K(就是在一秒之内连接客户端的数目为10k即1万)问题

在这里插入图片描述

  • 管理员只关心master进程
  • 管理员没有直接调用worker进程,而是通过发信号来实现
  • worker是一个进程而非线程
  • 客户端直接连接worker和master没有关系

2:nginx的特点

  • 跨平台:可以在大多数Unix like 系统编译运行。
  • 配置异常简单:非常的简单,易上手。
  • 采用Master/worker多进程工作模式(区分master/slaver)
  • Nginx接收用户请求是异步的,即先将用户请求全部接收下来,再一次性发送到后端Web服务器,极大减轻后端Web服务器的压力。
  • Nginx代理和后端Web服务器间无需长连接;

二:正向代理和反向代理

Nginx用的最多的是一个反向代理服务器

正向代理:代理服务器一般指局域网内部的机器通过代理服务器发送请求到互联网上的服务器,代理服务器一般作用在客户端。
反向代理:作用在服务器端,它在服务器端接收客户端的请求,然后将请求分发给具体的服务器进行处理,然后再将服务器的相应结果反馈给客户端。
在这里插入图片描述

三:Nginx安装

这里可以去官网下载其它版本

1:第一步下载并解压nginx(1.19.6为例)

cd /usr/local   切换到指定目录中
wget http://nginx.org/download/nginx-1.19.6.tar.gz  下载nginx
tar -zxvf nginx-1.19.6.tar.gz   解压

2:安装依赖项

 yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel   安装依赖项

3:配置Nginx安装选项

这里只配置安装到/usr/local目录下,其它选项可执行./configuration –help查看
cd /usr/local/nginx-1.19.6    跳转到解压后的目录
./configure --prefix=/usr/local/nginx --sbin-path=/usr/bin/nginx    配置安装属性

4:编译并安装

make && make install

5:验证安装以及关闭重启

下面可以使用 nginx 是因为在/ usr/bin 中有 nginx 指令
​	命令:
​	nginx					启动nginx
​	ps -ef | grep nginx		可通过ps -ef | grep nginx查看nginx是否已启动成功
​	nginx -s reload			重新启动
​	nginx -s stop			停止nginx

如图
在这里插入图片描述

6:访问

启动nginx之后,直接在浏览器进行访问:
http://192.168.x.x/
如果访问不了,请检查防火墙是否放行80端口,centos6版本以下命令
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
将该设置添加到防火墙的规则中
/etc/rc.d/init.d/iptables save


centos7 添加放行
firewall-cmd --zone=public --add-port=80/tcp --permanent
重启防火墙
firewall-cmd --reload


或者直接关闭防火墙
systemctl stop firewalld 

如图默认是80端口
在这里插入图片描述

7 :设置vim编写nginx配置文件语法高亮提示

  • 进入/usr/local/nginx-1.19.6/contrib
cd /usr/local/nginx-1.19.6/contrib
  • 创建目录
mkdir /root/.vim
  • 复制vim目录
 cp -r  vim/* /root/.vim/

此时使用vim打开配置文件就会高亮提示

三:修改访问主页

1:编辑主页面

位置:/usr/local/nginx/html

vim /usr/local/nginx/html/index.html

进入之后简单修改测试一下
在这里插入图片描述

2:测试结果

在这里插入图片描述

四:实现分布式(分而治之)

1:创建一个配置文件(root.conf)

在当前位置:/usr/local/nginx/conf/下新建一个配置文件
root.conf

server {
        listen       81;
        server_name  localhost master;
        location / {
            root   html;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }

2:在nginx.conf配置文件中引入新建的配置文件

在nginx.conf配置文件倒数第二行引入新建的配置文件信息

我这里新建的配置文件名叫root.conf(注意不要丢了分号)

include root.conf;

3:验证结果(默认的nginx首页)

此时就可以采用81端口进行访问
在这里插入图片描述

五:nginx命令以及文件的介绍

1:停止nginx以及启动nginx

nginx -s stop    --暴力退出
nginx -s quit    --静默退出
nginx            --启动nginx
nginx  -s reload --重新加载nginx
nginx -s reopen  --重新打开日志文件
nginx -t         --检查是否正常 

2:命令帮助以及产看版本号

nginx -?      -- 查看命令的帮助项
nginx -v       -- 查看版本号

3:查看nginx的bin

whereis nginx

4:nginx目录下的主要目录介绍

  • logs 日志记录目录
  • html 页面根目录
  • conf 配置文件目录

5:配置文件的特性

  • 1指令或者指令块组成 。
  • 2所有的指令都是以;分号结束
  • 3“#”作为注释
  • 4尽量少用中文
  • 5看是否正确 nginx -t

6:查看日志(请求信息)

2:查看错误日志

cd /usr/local/nginx/logs
cat error.logs

六:解决缓存的三种设置

1. 设置浏览器为无痕模式

2. 在检查里面设置(在当前网页鼠标右键,点击检查)

在这里插入图片描述

3. 在linux输入一下命令查看(不存在缓存问题,但只使用于小页面)

curl http://master:81

七:nginx配置文件使用

这里修改这些的前提得必须在nginx主配置文件中利用
include 命令引入

1:nginx修改根目录

 server {
        listen       81;
        server_name  localhost master;
        location / {
            root   /tmp/html;
            ##这里修改到tmp目录下,应为这个目录nobody可以访问,/root目录下就不能访问成功,这里由于nobody权限比较小,不能访问/root下的文件
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }

结果
在这里插入图片描述

2:nginx 配置 autoindex

当我们想要代理一个文件夹下的多个项目时,我们需要在location里面加入autoindex配置项,autoindex的含义如下:
autoindex表示自动创建索引列表,拥有on、off两个参数,其中on表示打开,off表示关闭
示例:当我们设置:autoindex on;我们能够访问到下面代理成功的图片:
编辑autoindex .conf

server {
        listen       81;
        server_name  localhost master;

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

结果
在这里插入图片描述

3:反向代理

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

  server {
        listen       81;
        server_name  localhost master;
        location / {
            #默认拦截81/下的所有请求
            proxy_pass http://192.168.137.3:8080/;            # 代理到tomcat服务器首页;
            # index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

结果
在这里插入图片描述

4:静态资源代理

对于一些静态资源,可以不用tomcat去处理,用nginx强大的处理静态资源文件的功能即可,那么在上面的配置中加上如下配置即可:

        location /image/ {
            alias /tmp/image/;
        }
    

验证结果
在这里插入图片描述

八:搭建nginx负载均衡

1:拉取两个Tomcat镜像(模拟了两个tomcat服务器)

docker pull tomcat:8.0     --8.0和8不是一个东西
docker pull tomcat:9

2:启动容器

docker run -itd -p8080:8080 --name tomcat8 tomcat:8.0
docker run -itd -p8081:8080 --name tomcat9 tomcat:9

3:创键upstream.conf配置文件

##新建负载均衡文件
upstream backend 
{
  ##server服务地址  weight代表权重:1-10
  ##weight Nginx根据weight配置把请求更多地分发到高配置的后端服务器上,把相对较少的请求分发到低配服务器
  server 192.168.137.3:8080  weight=1;
  server 192.168.137.3:8081  weight=2;
  ## weight 权重   值越大表示服务器分配的越多的请求
  ## 轮询模式
  ##如果配置了down 则该配置不生效
  ##server 192.168.1.107:8001  weight=2 down;
  ##ip_hash 每个请求按访问ip的hash结果分配,保证连接到固定的负载服务器上,这种方式可以解决session问题
  #ip_hash;
}
server {
        listen       82;
        #server_name  localhost master;注意空格
        server_name  localhost master;
        location / {
        #这里改成backend
            proxy_pass http://backend;
          }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

4:验证结果

在一个端口下向不同服务器发送请求,从而实现了负载均衡的效果

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
05-27
好的,以下是一些关于Nginx的常见面试问题及其答案: 1. 什么是NginxNginx是一款高性能的Web服务器和反向代理服务器,也可以作为负载均衡器、HTTP缓存和安全控制等功能。 2. Nginx与Apache相比有什么优势? 相比Apache,Nginx的优势有以下几点: - 轻量级,占用资源更少; - 高并发处理能力更强; - 更好的静态文件处理能力; - 支持热部署; - 支持反向代理、负载均衡等高级功能。 3. 什么是反向代理? 反向代理是一种服务器端的代理技术,它代理的是服务器接收请求的过程。当客户端发起请求时,它会被发送到反向代理服务器,然后由反向代理服务器将请求转发给真正的服务器。这样可以隐藏真实服务器的IP地址,提高服务器的安全性,同时还可以实现负载均衡等功能。 4. Nginx如何实现反向代理? 在Nginx中,可以使用代理模块实现反向代理功能。通过配置代理服务器的地址和端口,将请求转发给真正的服务器。 例如,以下是一个简单Nginx反向代理配置示例: ``` server { listen 80; server_name example.com; location / { proxy_pass http://backend_server; } } ``` 其中,`backend_server`是真正的服务器地址,Nginx会将所有请求转发给该地址。 5. Nginx如何实现负载均衡? Nginx可以通过配置upstream模块来实现负载均衡。通过在upstream中配置多个服务器地址和权重,Nginx会自动将请求转发给这些服务器,并根据权重分配流量。 例如,以下是一个简单Nginx负载均衡配置示例: ``` upstream backend { server 192.168.1.1 weight=3; server 192.168.1.2; server 192.168.1.3; } server { listen 80; server_name example.com; location / { proxy_pass http://backend; } } ``` 其中,`backend`是upstream的名称,Nginx会根据权重将请求分配给多个服务器。 希望这些答案能够帮助你更好地了解Nginx。如果你还有其他问题或者需要更详细的解答,请随时提出。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值