Nginx基础教程

目录

(一)Nginx简介

(二)Nginx的作用

0x01 代理

1.1  正向代理:代理是代理客户端的

 1.2 反向代理

 0x02 负载均衡

2.1 内置策略

 0x03 动静分离

(三)Nginx的安装

(四)Nginx常用命令

(五)Nginx配置文件

nginx.conf 内容结构:

(六)Nginx反向代理


(一)Nginx简介


  • Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。
  • 其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好
  • Nginx 是一个安装非常的简单、配置文件非常简洁(还能够支持perl语法)、Bug非常少的服务。Nginx 启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。
  • Nginx代码完全用C语言从头写成。官方数据测试表明能够支持高达 50,000 个并发连接
  • 数的响应。

(二)Nginx的作用


0x01 代理

代理作为web服务器最常用的功能之一,尤其是反向代理。

1.1  正向代理:代理是代理客户端的


Nginx基础教程_第1张图片

 1.2 反向代理


代理是代理服务器的,所以用户是无感知的,比如,百度的服务器是在不同的服务器上,我们只需要搜索baidu.com就行

Nginx基础教程_第2张图片

 0x02 负载均衡


Nginx提供的负载均衡策略有2种:内置策略和扩展策略。内置策略为轮询,加权轮询,Ip hash。扩展策略,就天马行空,非常强大。

2.1 内置策略

  • 轮询

Nginx基础教程_第3张图片

 

  • 加权轮询,因为可能不同服务器性能不一样,能接收的请求数量不同

Nginx基础教程_第4张图片

 

  • iphash对客户端请求的ip进行hash操作,然后根据hash结果将同一个客户端ip的请求分发给同一台服务器进行处理,可以解决session不共享的问题

Nginx基础教程_第5张图片

 0x03 动静分离


在我们的软件开发中,有些请求是需要后台处理的,有些请求是不需要经过后台处理的(如:css、html、jpg、js等等文件),这些不需要经过后台处理的文件称为静态文件。让动态网站里的动态网页根据一定规则把不变的资源和经常变的资源区分开来,动静资源做好了拆分以后,我们就可以根据静态资源的特点将其做缓存操作。提高资源响应的速度。

Nginx基础教程_第6张图片

 

(三)Nginx的安装


这里使用ubuntu直接apt安装命令即可:

sudo apt install nginx

其中配置文件在 /etc/nginx/ 目录下

(四)Nginx常用命令


nginx  启动
nginx -s stop  停止
nginx -s quit  安全退出
nginx -s reload  重新加载配置文件
ps aux|grep nginx  查看nginx进程
  • 注意:如何连接不上,检查服务器防火墙是否开放端口
# 开启
service firewalld start
# 重启
service firewalld restart
# 关闭
service firewalld stop
# 查看防火墙规则
firewall-cmd --list-all
# 查询端口是否开放
firewall-cmd --query-port=8080/tcp
# 开放80端口
firewall-cmd --permanent --add-port=80/tcp
# 移除端口
firewall-cmd --permanent --remove-port=8080/tcp
#重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload
  • firwall-cmd:是Linux提供的操作firewall的一个工具;
  • –permanent:表示设置为持久;
  • –add-port:标识添加的端口;

(五)Nginx配置文件


配置文件 为nginx.conf ,其中nginx.conf 的注释符号为: #

nginx.conf 内容结构:

...              #全局块
 
events {         #events块
   ...
}
 
http      #http块
{
    ...   #http全局块
    server        #server块
    { 
        ...       #server全局块
        location [PATTERN]   #location块
        {
            ...
        }
        location [PATTERN] 
        {
            ...
        }
    }
    server
    {
      ...
    }
    ...     #http全局块
}
  • 全局块:配置影响nginx全局的指令。一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等。
  • events块:配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。
  • http块:可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。如文件引入,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等。
  • server块:配置虚拟主机的相关参数,一个http中可以有多个server。
  • location块:配置请求的路由,以及各种页面的处理情况。

(六)Nginx反向代理


假设我们有一个域名 www.example.com , 有两台服务器作为负载服务器,反向代理配置:

http {
    ...
 
    upstream mysvr { 
        server 192.168.0.1:8080;    
        server 192.168.0.2:8080;       
    }
 
    server {
        # 监听端口
        listen 80        
        # 域名
        server_name =  www.example.com
 
        # 匹配 URL
        location  / {   
            # 网站根目录
            root   /var/www/html;
            # 网站的默认首页
            index  index.html index.htm index.jsp;
            # 被代理服务器的地址,可以是主机名称、IP地址加端口号的形式
            proxy_pass  http://mysvr;  #请求转向mysvr 定义的服务器列表         
        }
 
        ...
    }
 
}

这样就把 http://www.example.com:80 的访问分配到192.168.0.1和192.168.0.2这两台服务器的8080端口中,这就是反向代理。

你可能感兴趣的:(信息安全,nginx,服务器,运维)