• Nginx反向代理服务器搭建(超详细)


    一、简介

    Nginx (engine x) 是一个高性能的Web服务器和反向代理服务器,也可以作为邮件代理服务器。

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

    正向代理类似一个跳板机,代理访问外部资源。比如:我是一个用户,我访问不了某网站,但是我能访问一个代理服务器,这个代理服务器,它能访问那个我不能访问的网站,于是我先连上代理服务器,告诉它我需要那个无法访问网站的内容,代理服务器去取回来,然后返回给我。

    Nginx 特点是占有内存少,并发处理能力强,以高性能、低系统资源消耗而闻名,Nginx官方测试为5万并发请求。

    二、负载均衡策略常用的几种

    1. 轮询策略(默认) :将请求通过Nginx,平均分配给我们的资源服务器。
    2. 权重策略:根据每台服务器设置的所占比,进行请求转发。
    3. 最少连接: Nginx会将请求连接数最少的一台服务器,进行将它分配请求。
    4. IP Hash:根据浏览器的ip地址,进行hash及取模运算,然后得到一个索引值,在浏览器IP地址未改变情况下,一直访问该台服务器,类似单机策略。

    三、安装Nginx

    Nginx的安装需要确定Linux安装相关的几个库,否则配置和编译会出现错误, 具体的检查安装过程为:

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

    将nginx-1.14.2.tar.gz文件上传后,解压下载下来的nginx文件,执行命令:

    tar -zxvf nginx-1.14.2.tar.gz

    切换至解压后的nginx主目录,执行命令:

    cd nginx-1.14.2

    在nginx主目录nginx-1.14.2下执行命令 (其中--prefix是指定nginx安装路径)  注意:等号左右不要有空格

    ./configure --prefix=/usr/local/nginx

    执行命令进行编译:

    make

    执行命令进行安装:

    make install

    安装成功后,可以切换到/usr/local/nginx目录下,查看内容:

    cd /usr/local/nginx

    四、启动

    普通启动

    切换到nginx安装目录的sbin目录下,执行:

    1. cd sbin
    2. ./nginx

    通过配置文件启动

    1. ./nginx -c /usr/local/nginx/conf/nginx.conf
    2. /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

    其中-c是指定配置文件,而且配置文件路径必须指定绝对路径

    检查Nginx是否启动

    通过查看进程:

    ps -ef | grep nginx

     在开放端口后在外部浏览器访问ip:80可以看到:

    五、优雅地关闭Nginx

    找出nginx的进程号:

    ps -ef | grep nginx

    执行命令:

    kill -QUIT 主pid

    或者是:(选一个kill来关闭即可)

    kill -TERM 主pid

    六、重启Nginx

    ./nginx

    七、检查及其他操作

    当修改Nginx配置文件后,可以使用Nginx命令进行配置文件语法检查,用于检查Nginx配置文件是否正确

    /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf -t

     查看版本

    ./nginx -v

    八、Window 安装搭建Nginx(了解) 

    在官方网站下载最新windows版的nginx:http://nginx.org/en/download.html

    将下载下来的nginx压缩包解压到一个目录下,解压后该软件就可以启动使用了 

    启动方式1:双击解压目录下的nginx.exe文件即可运行nginx;

    启动方式2:进入dos窗口,切换到nginx主目录下,在dos窗口执行命令:start nginx

    关闭方式1:在资源管理器杀掉Nginx进程(有两个进程)

    关闭方式2:在dos窗口切换到Nginx安装主目录下执行命令:nginx -s stop

    九、配置文件

    学习Nginx首先需要对它的核心配置文件有一定的认识,这个文件位于Nginx的安装目录/usr/local/nginx/conf目录下,名字为nginx.conf

    cd /usr/local/nginx/conf

    十、静态网站部署

    Nginx是一个HTTP的web服务器,可以将服务器上的静态文件(如HTML、CSS、JS、图片等)通过HTTP协议返回给浏览器客户端,找一个简单的web项目上传到linux服务器/opt/static目录下,将名字改为ace

     修改nginx.conf配置文件

     cd /usr/local/nginx/conf/

     为了避免后续使用寻找不到原来的配置,将复制一份nginx.conf配置文件

    修改配置的访问路径: 

    vim 1.static-resource-web.conf

    或者使用这个也行: 

      

     随后便通过指定的配置文件(1.static-resource-web.conf)来启动Nginx(检查配置文件和启动)

    1. /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/1.static-resource-web.conf -t
    2. /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/1.static-resource-web.conf

    最后在外部浏览器即可访问:

     十一、负载均衡

    在网站创立初期,我们一般都使用单台机器对外提供集中式服务。随着业务量的增大,我们一台服务器不够用,此时就会把多台机器组成一个集群对外提供服务,但是,我们网站对外提供的访问入口通常只有一个,比如 www.web.com。那么当用户在浏览器输入www.web.com进行访问的时候,如何将用户的请求分发到集群中不同的机器上呢,这就是负载均衡要做的事情。

    负载均衡通常是指将请求"均匀"分摊到集群中多个服务器节点上执行,这里的均匀是指在一个比较大的统计范围内是基本均匀的,并不是完全均匀。

    硬件负载均衡

            比如 F5、深信服、Array 等

            优点是有厂商专业的技术服务团队提供支持,性能稳定

            缺点是费用昂贵,对于规模较小的网络应用成本太高

    软件负载均衡

            比如 Nginx、LVS、HAProxy 等

            优点是免费开源,成本低廉

    Nginx负载均衡

            Nginx通过在nginx.conf文件进行配置即可实现负载均衡。

    配置如下:(配置2步即可)

    第一步:在http模块加上upstream配置

    1. upstream www.myweb.com {
    2.       server  127.0.0.1:9100 weight=3;
    3.       server  127.0.0.1:9200 weight=1;  
    4. }

    其中weight=1表示权重,用于后端服务器性能不均的情况,访问比率约等于权重之比,权重越大访问机会越多

    upstream是配置nginx与后端服务器负载均衡非常重要的一个模块,并且它还能对后端的服务器的健康状态进行检查,若后端服务器中的一台发生故障,则前端的请求不会转发到该故障的机器

    第二步:在server模块里添加location,并配置proxy_pass

    1. location /myweb {
    2. proxy_pass http://www.myweb.com;
    3. }

    其中 www.myweb.com 字符串要和 upstream 后面的字符串相等

    十二、动静分离

    Nginx的负载均衡和静态代理结合在一起,我们可以实现动静分离,这是实际应用中常见的一种场景。

    动态资源,如jsp由tomcat或其他web服务器完成

    静态资源,如图片、css、js等由nginx服务器完成

    它们各司其职,专注于做自己擅长的事情

    动静分离充分利用了它们各自的优势,从而达到更高效合理的架构

    整个架构中,一个nginx负责负载均衡,两个nginx负责静态代理。Nginx在一台Linux上安装一份,可以启动多个Nginx,每个Nginx的配置文件不一样即可。

    十三、映射域名

    先修改nginx.conf配置文件

    然后进入Windows系统的下面目录文件中,添加ip与域名的映射,随后便可在浏览器访问了

     

     

  • 相关阅读:
    vue 前端参值后端接收的几种方式
    用户 + 案例 + 认证 + 框架一键ko,不愧是阿里最新 Spring Security 全栈笔记
    java计算机毕业设计消防安全应急培训管理平台源码+系统+数据库+lw文档+mybatis+运行部署
    搭建web服务器需要哪些步骤?
    input输入系统
    JSON和全局异常处理
    《优化接口设计的思路》系列:第1篇—什么是接口缓存
    Nacos升级2.2.2 相关版本升级及升级中问题【下篇】
    Linux 常用命令
    java基于ssm的汽车维修保养管理系统
  • 原文地址:https://blog.csdn.net/yueyue763184/article/details/127776029