Nginx基础教程

Nginx基础教程

Nginx简介

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

Nginx的作用

代理

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

  • 正向代理:代理是代理客户端的
image-20220410222723260
  • 反向代理 :代理是代理服务器的,所以用户是无感知的,比如,百度的服务器是在不同的服务器上,我们只需要搜索baidu.com就行。
image-20220410222748529

负载均衡

Nginx提供的负载均衡策略有2种:内置策略和扩展策略。内置策略为轮询,加权轮询,Ip hash。扩展策略,就天马行空,只有你想不到的没有他做不到的。

  • 轮询
image-20220410223518862
  • 加权轮询,因为可能不同服务器性能不一样,能接收的请求数量不同
image-20220410223535947
  • iphash对客户端请求的ip进行hash操作,然后根据hash结果将同一个客户端ip的请求分发给同一台服务器进行处理,可以解决session不共享的问题。
image-20220410223549186

动静分离

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

Nginx的安装

Windows下的安装

  • 下载Nginx

Nginx 官网:nginx: download 下载稳定版本

image-20220410223926311

解压到文件夹中

image-20220410224323285
  • 启动Nginx

有很多种方法启动nginx

(1)直接双击nginx.exe,双击后一个黑色的弹窗一闪而过

(2)打开cmd命令窗口,切换到nginx解压目录下,输入命令 nginx.exe ,回车即可

  • 检查Nginx是否启动成功

直接在浏览器地址栏输入网址 http://localhost:80 回车,出现以下页面说明启动成功

image-20220410224246420

Linux下的安装

这里使用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的配置文件 nginx.conf 在 nginx.conf 的注释符号为: #

默认的 nginx 配置文件 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端口中,这就是反向代理。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇