Nginx代理服务器

发布时间 2023-08-25 15:18:42作者: 九极致之术

1.Nginx的认识

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好。 50,000 个并发连接数的响应.

【注:nginx它是一个反向代理的服务器,而且占用内存小,并发能力强。默认并发2w. 】

2.使用Nginx的好处

并发量高且代理后面的服务器提高安全性

3.使用Nginx

下载Nginx包

https://nginx.org/en/download.html

【注:一定要下载linux版本】

3.1安装c语言环境

由于Nginx是由c语言开发,要想使用就必须配置C语言环境

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

3.2 把下载的nginx放入linux系统

这里依然放入  /usr/local/app

解压该压缩文件

tar -zxvf nginx-1.24.0.tar.gz

3.3创建Nginx安装目录

cd 进入到  /usr 文件夹下创建 名为 Nginx的文件夹作为Nginx的安装目录

cd /usr

mkdir Nginx

3.4指定Nginx安装路径

再次进入到Nginx解压目录,也就是 /usr/local/app 下的解压后的Nginx文件

cd进入

ls查看文件

输入命令指定Nginx的安装路径

 ./configure --prefix=/usr/nginx

3.5编译和安装

 还是在解压后的Nginx文件中进行编译安装

make install 

编译并安装,成功后查看 ls  /usr/Nginx

 下的文件

 有上面图片中的文件即安装成功

3.6Nginx中文件概述

conf: nginx的配置目录 nginx.conf

html: 静态资源目录

logs: 日志----如果启动nginx出现错误时,会在该目录下的日志文件中显示

sbin: 启动和关闭nginx的脚本目录

3.7启动与关闭Nginx

此时进入到Nginx的安装目录中的sbin目录

cd /usr/nginx/sbin

输入

./nginx

 启动Nginx

查看是是否启动成功:

ps -ef | grep nginx

 

 启动成功!

关闭和重新加载命令:

./nginx        #开启Nginx

ps -ef | grep nginx   #查看Nginx进程

./nginx -s stop   #关闭nginx

./nginx -s reload  #重新加载nginx配置文件

 【注:第一次启动成功时一定不要忘了防火墙放行其端口且刷新防火墙】

 【注:Nginx默认端口80】

此时,启动成功并放行80端口后,打开浏览器输入 你的虚拟机或者服务器的ip地址:80

 

4.nginx的配置文件的介绍

现在我们进入到 /usr/nginx/conf

ls查看文件找到 名为nginx.conf 的文件并打开

4.1复写server

现在我们模仿人家,自定义一个server标签

server{
    listen         82;
    server_name localhost;

    location / {
    root www;
    index index.html index.htm;
    }
    }

更改配置文件后退出保存

刷新其文件,因为更改了配置

cd /usr/nginx/sbin
./nginx -s reload

 我在  /usr/nginx/ 下新建了目录名为www,其中创建了一个index.html文件

其中index.html文件写了一句HelloWord

现在我们启动Nginx服务【注:如果没启动就启动,启动了就跳过】

./nginx

打开浏览器输入服务器或者虚拟机ip地址:82

 成功!!!

5.Nginx的核心功能

【1】反向代理

【2】负载均衡

【3】动静分离
【4】nginx的高可用

6.Nginx反向代理

 知识扩充:

6.1正向代理概念:

vpn服务就是正向代理,由于国内被限制禁止访问国外的一些网站,所以有的时候我们需要借助vpn来达到目的

当我们使用VPN时,我们向国外服务器发起请求,vpn会代理这些请求转发给国外的服务器,国外的服务器会把服务器返回给vpn解析后返回给我们

此时,国外的服务器并不知道vpn后的真实服务,这就是正向代理

6.2反向代理概念:

那么理解正向代理后,反向代理也就不难理解,其也就是通过Nginx代理服务器或其他代理服务器,代理一台或多个服务器接受客户端的请求,Nginx代理服务器会把这些请求分发给后面的服务器,这时,客户端并不知道代理服务器后服务器的真实ip地址,只知道是有Nginx代理的服务器

6.3使用反向代理

准备的环境:

(1)搭建nginx服务器--5.0标题之前搭好了

【需要准备两台虚拟机或者服务器演示】

(2)准备一个真实服务器---springboot项目

 打开Idea新建springboot工程,勾选web依赖

进入后打开pom文件,更改SpringBoot版本为2.3.2

在java包下com.aaa下新建controller层  【注:我的包名是叫com.aaa】

新建HelloController类

给上@RestContortller

新写方法

@GetMapping("/hello")
pubilc String Hello(){
return "Hello~~~~~~~~~~~~";
}

 且打包导出

 

将打包后的jar包拖入到linux系统中,我这里就直接放入/根目录

 运行项目:

java -jar 你拖入的jar包名

 【注:linux环境中必须安装了jdk。】

 ·此时,我们到第二台虚拟机中:

在这中,也需要相应的Nginx环境配置,与第一台虚拟机一样

进入 /usr/nginx/conf 中编辑nginx.conf 文件更改配置

server{
    listen 		81; #【注:这里是一会要直接访问的端口】
    server_name localhost;

    location / {
   proxy_pass   http://192.168.235.135:8080;#【注:这里的ip地址需要写被代理的服务器ip,也就是运行jar包的那台服务器ip地址】
    }
    }
firewall-cmd --add-port=81/tcp --zone=public --permanent #【注:放开刚刚设置的81端口】

systemctl restart firewalld #【注:放开端口后刷新防火墙】

 此时到浏览器上输入第二台的ip地址:81/hello

反向代理成功!!!!