Nginx 1
  nED7UzStUtcj 2023年11月02日 21 0


一、关于Nginx

1.Nginx

Nginx同Apache一样都是一种WEB服务器。基于REST架构风格,以统一资源描述符(Uniform Resources Identifier)URI或者统一资源定位符(Uniform Resources Locator)URL作为沟通依据,通过HTTP协议提供各种网络服务。

Nginx是一个跨平台服务器,可以运行在Linux,Windows,FreeBSD,Solaris,AIX,Mac OS等操作系统上

Nginx ("engine x") 是一个高性能的 HTTP 和反向代理服务器,特点是占有内存少,并发能 力强

2.代理

1)正向代理: 隐藏客户端信息

正向代理最大的特点是客户端非常明确要访问的服务器地址;服务器只清楚请求来自哪个代理服务器,而不清楚来自哪个具体的客户端;正向代理模式屏蔽或者隐藏了真实客户端信息。

正向代理,"它代理的是客户端,代客户端发出请求",是一个位于客户端和原始服务器(origin server)之间的服务器

正向代理的用途:

1)访问原来无法访问的资源,如Google

2)可以做缓存,加速访问资源

3)对客户端访问授权,上网进行认证

4)代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息

2)反向代理:隐藏服务端信息

请求的来源也就是客户端是明确的,但是请求具体由哪台服务器处理的并不明确

反向代理,其实客户端对代理是无感知的,因为客户端不需要任何配置就可以访问,我们只 需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返 回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器 地址,隐藏了真实服务器 IP 地址。

反向代理的作用:

1)保证内网的安全,通常将反向代理作为公网访问地址,Web服务器是内网

2)负载均衡,通过反向代理服务器来优化网站的负载

3)二者区别

在正向代理中,Proxy和Client同属于一个LAN,隐藏了客户端信息;

在反向代理中,Proxy和Server同属于一个LAN,隐藏了服务端信息;

实际上,Proxy在两种代理中做的事情都是替服务器代为收发请求和响应,不过从结构上看正好左右互换了一下,所以把后出现的那种代理方式称为反向代理了。



二、Nginx的安装与配置

1.安装依赖环境

gcc安装

yum install -y gcc-c++

PCRE安装:

pcre是一个perl库,包括perl兼容的正则表达式库,nginx的http模块使用pcre来解析正则表达式,所以需要安装pcre库。

安装命令:

yum install -y pcre pcre-devel

zlib安装:

zlib库提供了很多种压缩和解压缩方式nginx使用zlib对http包的内容进行gzip,所以需要安装

安装命令:

yum install -y zlib zlib-devel

OpenSSL安装:

penssl是web安全通信的基石,没有openssl,可以说我们的信息都是在裸奔,所以需要安装

安装命令:

yum install -y openssl openssl-devel

 执行下命令安装上述命令 出现complete安装完成

yum install -y gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel

Nginx 1_服务器

Nginx 1_客户端_02编辑

2.安装nginx

 上传niginx压缩包 到 /usr/soft里面

Nginx 1_nginx_03

Nginx 1_nginx_04编辑

3.解压文件

root@localhost soft]# tar -zxvf nginx-1.15.10.tar.gz

4.配置

进入目录nginx-1.15.10  并使用默认配置./configure

Nginx 1_客户端_05

Nginx 1_nginx_06编辑

1). 编译和安装

make&&make install

2). 查看安装位置

whereis nginx

Nginx 1_服务器_07

Nginx 1_服务器_08编辑

3).进入安装目录启动nginx

[root@localhost /]# cd /usr/local/nginx/sbin/

Nginx 1_服务器_09

Nginx 1_客户端_10编辑

启动[ root@localhost sbin]#  ./nginx

Nginx 1_服务器_11

Nginx 1_客户端_12编辑

 4). 查询nginx进程

ps aux|grep -v grep|grep nginx

ps -ef|grep -v grep|grep nginx

[ root@localhost sbin]# ./nginx -s reload 重新加载

[ root@localhost sbin]# ./nginx -s quit 此方式停止步骤是待nginx进程处理任务完毕进行停止。

[ root@localhost sbin]# ./nginx -s stop:此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程。

5).访问nginx

出现下图界面安装成功

Nginx 1_nginx_13

Nginx 1_nginx_14编辑

5.nginx配置文件  

nginx.conf 主要由 全局块、events 块、http 块三部分组成

6.反向代理实例1

访问192.168.81.33 指向   http://192.168.81.33:8080/test;

进入nginx.conf配置文件设置代理

Nginx 1_nginx_15

Nginx 1_服务器_16编辑

7.反向代理实例2

根据访问的路径跳转到不同端口的服务器中

Nginx 1_nginx_17

Nginx 1_nginx_18编辑

location 指令说明 该指令用于匹配 URL。 语法如下:

location [ = | ~ |~* |^~] uri{}

1、= :用于不含正则表达式的 uri 前,要求请求字符串与 uri 严格匹配,如果匹配 成功,就停止继续向下搜索并立即处理该请求。

2、~:用于表示 uri 包含正则表达式,并且区分大小写。

3、~*:用于表示 uri 包含正则表达式,并且不区分大小写。

4、^~:用于不含正则表达式的 uri 前,要求 Nginx 服务器找到标识 uri 和请求字 符串匹配度最高的 location 后,立即使用此 location 处理请求,而不再使用 location 块中的正则 uri 和请求字符串做匹配。 注意:如果 uri 包含正则表达式,则必须要有 ~ 或者 ~* 标识。

8.Nginx配置负载均衡

修改nginx.conf文件

upstream 上游

upstream aaa

{

server 192.168.159.34:8080 ;

server 192.168.159.34:8081 ;

}

...

server {

listen 80;

server_name 192.168.109.35;

location /bbb {

root html;

index index.html index.htm;


proxy_pass http://aaa/;

1、轮询(默认)

每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。

2、weight

weight 代表权,重默认为 1,权重越高被分配的客户端越多

指定轮询几率,weight 和访问比率成正比,用于后端服务器性能不均的情况

upstream aaa{

server 192.168.159.34:8080 weight=10;

server 192.168.159.34:8081 weight=100;

3、ip_hash

每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器,可以解决 session 的问题。 例如:

upstream aaa{

ip_hash;

server 192.168.159.34:8080 ;

server 192.168.159.34:8081 ;

}

4、fair(第三方)

按后端服务器的响应时间来分配请求,响应时间短的优先分配。

upstream aaa{

fair;

server 192.168.159.34:8080 ;

server 192.168.159.34:8081 ;

}

三、配置nginx开机启动

1.创建nginx.service文件   

切换到/lib/systemd/system/目录,并创建nginx.service文件   

vim nginx.service 编辑以下内容 确认nginx.conf正确路径

Nginx 1_nginx_19

Nginx 1_客户端_20编辑

配置之后需要使文件生效

systemctl daemon-reload

退出并保存文件,

执行systemctl enable nginx.service使nginx开机启动           

2.设置开机自启动

nginx.service文件 完成后 

 [ root@localhost sbin] # ./nginx -s reload 重新加载

设置开机自启动

 [ root@localhost sbin] # systemctl enable nginx.service                      

查询当前状态 running自启动成功

Nginx 1_服务器_21

Nginx 1_服务器_22编辑

3.其他命令

#开机自启动

systemctl enable nginx.service

#停止开机自启动

systemctl disable nginx.service

#查询当前状态

systemctl status nginx.service

#启动服务

systemctl start nginx.service

#重新启动服务

systemctl restart nginx.service

#停止服务

systemctl stop nginx.service

#重新加载配置

systemctl reload nginx.service


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
nED7UzStUtcj
作者其他文章 更多

2023-11-02