精华内容
下载资源
问答
  • nginx反向代理
    千次阅读
    2022-04-28 20:03:31

    1、nginx常用命令

    • 前提条件:必须进入到nginx目录中–>cd /urs/local/nginx/sbin

      查看版本号./nginx -v
      启动Nginx./nginx
      关闭Nginx./nginx -s stop
      重加载Nginx./nginx -s reload

    2、Nginx配置文件

    ​ (1)文件所在位置:/urs/local/nginx/conf/ngonx.conf

    ​ (2)Nginx配置文件由三部分组成

    第一部分:全局块

    从配置文件开始的位置到events块都属于全局块,主要会设置一些影响Nginx服务器整体运行的配置指令,主要包括:

    ①配置运行Nginx服务器的用户(组)、允许生成的worker process数,进程PID、日志的存放路径和类型以及配置文件的引入等;

    worker_processes  1; #Nginx处理并发服务的关键配置,worker_processes值越大,可以支持的并发处理量也越多,但是会受到硬件、软件等设备的制约
    

    第二部分:events块

    events块涉及的指令主要影响Nginx服务器与用户的网络连接,常用设置包括是否开启对多work process下的网络连接进行序列化,是否允许同时接收多个网络连接,选取哪种驱动模型来处理连接请求,每个work process可以同时支持的最大连接数等。

    每个work process最大连接数位1024

    worker_connections  1024;
    

    第三部分:Http块

    注意:http 块也可以包括 http全局块、server 块

    ①http全局块:http全局块配置的指令包括文件引入、MIME-TYPE 定义、日志自定义、连接超时时间、单链接请求数上限等。

    ②这块和虚拟主机有密切关系,虚拟主机从用户角度看,和一台独立的硬件主机是完全一样的,该技术的产生是为了节省互联网服务器硬件成本。 每个 http 块可以包括多个 server 块,而每个 server 块就相当于一个虚拟主机。 而每个 server 块也分为全局 server 块,以及可以同时包含多个 locaton 块。

    ​ ①全局 server 块:最常见的配置是本虚拟机主机的监听配置和本虚拟主机的名称或IP配置。

    ​ ②:一个 server 块可以配置多个 location 块。这块的主要作用是基于 Nginx 服务器接收到的请求字符串(例如 server_name/uri-string),对虚拟主机名称(也可以是IP别名)之外的字符串(例如 前面的 /uri-string)进行匹配,对特定的请求进行处理。地址定向、数据缓存和应答控制等功能,还有许多第三方模块的配置也在这里进行。

    Nginx-反向代理

    1、实现效果

    ​ (1)在浏览器中输入www.123.com,跳转到Linux系统Tomcat主页面中

    2、准备工作

    ​ (1)安装Tomcat

    ​ (2)在Linux中并不是每个端口都会别开放

    # --zone #作用域    --add-port=80/tcp #添加端口,格式为:端口/通讯协议    --permanent #永久生效,没有此参数重启后失效
    firewall-cmd --zone=public --add-port=8080/tcp --permanent #开启端口
    firewall-cmd --reload #重启防火墙
    firewall-cmd --list-ports #查看所有开启的端口
    systemctl status firewalld #查看防火墙是否开启
    firewall-cmd --state  #查看防火墙状态,是否是running
    firewall-cmd --reload #重新载入配置,比如添加规则之后,需要执行此命令
    firewall-cmd --get-zones     #列出支持的zone
    firewall-cmd --get-services  #列出支持的服务,在列表中的服务是放行的
    firewall-cmd --query-service ftp #查看ftp服务是否支持,返回yes或者no
    firewall-cmd --add-service=ftp                #临时开放ftp服务
    firewall-cmd --add-service=ftp --permanent    #永久开放ftp服务
    firewall-cmd --remove-service=ftp --permanent #永久移除ftp服务
    firewall-cmd --add-port=80/tcp --permanent    #永久添加80端口 
    firewall-cmd --remove-port=80/tcp --permanent    #永久移除80端口 
    iptables -L -n     #查看规则,这个命令是和iptables的相同的
    

    3、访问过程分析

    在这里插入图片描述

    4、具体配置

    第一步:在windows的hosts文件中添加

    第二步:修改Nginx.conf配置文件

    配置映射文件以及对应的服务器端口号,用户通过访问Nginx中配置的虚拟端口以及URL实现访问请求,从而使得真正的路径不被用户访问,降低服务器的访问压力

    在这里插入图片描述

    Nginx-负载均衡

    1、实现效果

    (1)浏览器中输入http://192.168.60.130/edu/a.html,实现负载均衡,平均在8080和8081端口中

    2、准备工作

    (1)准备两台Tomcat服务器,一台端口为8080,另一台为8081

    (2)在两台Tomcat里面webapps目录中,创建名称为edu文件夹,文件夹中创建页面a.html,用于测试

    3、配置负载均衡

    (1)配置多台Tomcat服务器

    (2)将server_name中的localhost改为虚拟机地址

    (3)设置proxy_pass,指向两台服务器,使用轮询方式实现负载均衡

    在这里插入图片描述

    (4)通过浏览器访问即可–>http://192.168.60.130/edu/a.html,因为80端口是不需要在URL路径中输入即可访问的

    Nginx-动静分离

    1、什么是动静分离
    在这里插入图片描述

    2、配置文件—> /usr/local/Nginx/conf/Nginx.conf

    在这里插入图片描述

    3、测试

    (1)浏览器中进行访问图片–》http://192.168.60.130:image/01.jpg

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XRjisjEz-1651147399691)(C:\Users\Dell7591\AppData\Roaming\Typora\typora-user-images\image-20220424180648304.png)]

    (2)浏览器中进行访问HTML文件–》http://192.168.60.130:static/s.html

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uLa3KujU-1651147399691)(C:\Users\Dell7591\AppData\Roaming\Typora\typora-user-images\image-20220424180802284.png)]

    Nginx-高可用集群

    演示:

    在这里插入图片描述

    1、俩台服务器,均安装Nginx,前提还需安装,可能在安装pcre的过程中,虚拟机中还缺少C++的编译环境

    在这里插入图片描述

     tar -xvf pcre-8.37.tar.gz #解压pcre
     cd pcre-8.37/ #进入到pcre目录
     ./configure #
    yum install -y gcc gcc-c++ #安装c++编译环境
    ./configure
    make && make install #编译安装
    pcre-config --version #查看pcre版本
     yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel #安装openssl、zlib环境
     tar -xvf nginx-1.12.2.tar.gz  #解压nginx压缩包
    cd nginx-1.12.2 #进入到nginx目录
    ./configure #执行nginx命令
    make && make install #安装nginx
    cd /usr/local/nginx/sbin #进入到nginx目录中
    ./nginx -s stop #停止nginx服务
    ./nginx #启动nginx
     yum install keepalived -y #安装Keepalived环境
    rpm -q -a keepalived #查看keepalived是否安装成功
     systemctl start keepalived.service #启动keepalived服务
    

    2、设置keepalived配置文件,该文件配置在keepalived文件中,默认通过yum命令下载的keepalived会在/etc/下生成keepalived文件夹,而配置文件keepalived也放在该文件夹下,脚本文件则防止在脚本中规定的目录下即可

    -----------------------keepalived配置文件----------------------------
    global_defs { 
      notification_email { 
    	acassen@firewall.loc      
    	failover@firewall.loc      
    	sysadmin@firewall.loc 
    	} 
    	notification_email_from Alexandre.Cassen@firewall.loc    smtp_server 192.168.60.130 //主服务器地址
    	smtp_connect_timeout 30 
    	router_id LVS_DEVEL 
    }
    
    vrrp_script chk_http_port { 
    	script "/usr/local/src/nginx_check.sh" 
    	interval 2		#(检测脚本执行的间隔)
    	weight 2 
    }
    
    vrrp_instance VI_1 { 
        state BACKUP	# 备份服务器上将 MASTER 改为 BACKUP 
    	interface ens33  #网卡     
    	virtual_router_id 51   # 主、备机的virtual_router_id必须相同
    	priority 90   # 主、备机取不同的优先级,主机值较大,备份机值较小   
    	advert_int 1  # 每隔一秒发送心跳值,查询服务器是否存活,如不存活,则换从服务器
    	authentication { 
    		auth_type PASS 
    		auth_pass 1111
    	}
    	virtual_ipaddress {
    		192.168.60.101 // VRRP H虚拟地址
    	}
    }
    ----------------------------脚本文件--------------------------------
        #!/bin/bash 
    A=`ps -C nginx –no-header |wc -l` 
    if [ $A -eq 0 ];then
          /usr/local/nginx/sbin/nginx  //规定存放位置
          sleep 2  //每两秒检查一次Nginx服务器是否存在
          if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then 
               killall keepalived
          fi
    fi 
    

    3、启动nginx、keepalived即可

    4、通过浏览器访问虚拟IP

    Nginx原理

    1、原理:Nginx采用主从机制(Master&Worker)的方式实现,一个Master可以有多个Worker,Master是管理者,Worker是实际工作者,Worker采用争抢式的方式进行工作

    2、一个Master和多个Worker的优点?

    ①优点:可以使用Nginx -s reload实现热部署,在热部署的时候,正在处理工作的Worker先处理完手头上的任务,然后再进行更新,不会造成Nginx宕机

    ②:每个Worker都是独立的进程,如果有其中一个Worker出现问题,其他Worker都是独立的,继续争抢任务,实现请求,并不会造成服务中断

    3、设置多少个Worker合适?

    Worker数和服务器的CPU数量相等最为适宜,如果CPU个数只有4个,却设置8个Worker,可能会造成性能上的影响

    4、连接数Worker_Connection

    ①:发送请求,占用Worker几个连接数?—>2或者4个,解释:如果说请求访问静态资源,Worker接收到请求占用一个连接,处理请求之后,响应给客户端,又占用一个请求。另外;客户端同时需要访问静态资源又要访问Tomcat,这时候就会占用4个连接数

    ②:Nginx有一个Master,有四个Worker,每个Worker支持的最大连接数是1024,那么支持的最大并发数是多少?

    ​ A、普通的静态访问最大并发数是:Worker_Connection(连接数)*worker_process (Worker支持的最大连接数是1024)/ 2

    ​ B、如果是HTTP作为反向代理来说,最大的并发数应该是Worker_Connection(连接数)*worker_process (Worker支持的最大连接数是1024)/ 4

    在这里插入图片描述

    更多相关内容
  • nginx反向代理

    2021-02-24 04:50:13
    这里主要通过三个方面简单介绍nginx反向代理负载均衡nginx特点关于代理说到代理,首先我们要明确一个概念,所谓代理就是一个代表、一个渠道;此时就设计到两个角色,一个是被代理角色,一个是目标角色,被代理角色...
  • 由于Nginx反向代理后,在应用中取得的IP都是反向代理服务器的IP,取得的域名也是反向代理配置的Url的域名。 三、解决方案 解决该问题,需要在Nginx反向代理配置中添加一些配置信息,目的将客户端的真实IP和域名传递...
  • 然后发现可以在内网搭建一个nginx反向代理服务器,将nginx反向代理服务器的80映射到外网IP的80,这样指向到公司外网IP的域名的HTTP请求就会发送到nginx反向代理服务器,利用nginx反向代理将不同域名的请求转发给内网...
  • 先来理解一波概念,什么是nginx反向代理? 反向代理的意思是以代理服务器(这里也就是nginx)来接收网络上的请求,也就是url(默认是80端口), 1,nginx通过对url里面的一些判断(转达规则配置在nginx配置文件中),...
  • Nginx反向代理Docker容器 由nginx支持的反向代理的Docker映像。 概念 该git / docker图像旨在与反向代理示例以及其他两个Docker容器一起进行演示,以便人们可以轻松地学习如何使用此Docker容器创建反向代理: ...
  • 1.1 http:www.baidu.test.com默认是80,访问“/”利用反向代理,然后访问本地8083; 1.2 8083代表本地的前端工程访问地址,前端需要访问后台数据,”/”,继续代理到后台地址9803; 1.3 这样就做到了只要开通80...
  • 当前Nginx已经反向代理了两个网站,分别是基于Windows的IIS和Linux的Apach服务器,提供网页服务。 现在有新项目的网页需要对外提供服务,需要在代理服务器上增加另外一个网站,使用HTTPS访问以及HTTP自动跳转HTTPS。...
  • Nginx反向代理一个80端口下配置多个微信项目详解  我们要接入微信公众号平台开发,需要填写服务器配置,然后依据接口文档才能实现业务逻辑。但是微信公众号接口只支持80接口(80端口)。我们因业务需求需要在一个...
  • Nginx反向代理之后,Tomcat应用通过request.getHeader(host)取到的是Nginx的host,并非客户端浏览器地址栏上的真实域名。 例如在某一台服务器上,Tomcat的端口号为8080,Nginx的端口号为80,Nginx反向代理8080端口。...
  • nginx反向代理、负载均衡、缓存静态资源、URL重定向、读写分离.zip
  • 首先是nginx安装 [root@iZbp1fuxe9jel2667kxu6eZ ~]# yum install nginx -y 进入目录 [root@iZbp1fuxe9jel2667kxu6eZ ~]# cd /etc/nginx 修改配置文件 [root@iZbp1fuxe9jel2667kxu6eZ nginx]# vim nginx.conf ...
  • 主要介绍了nginx反向代理导致session失效的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • nginx反向代理tcp端口详细操作说明,代理所有tcp端口说明
  • 42 2 Nginx反向代理视频

    2019-08-07 17:33:34
    教程视频:Nginx反向代理web服务器,后台java控制连接访问。
  • 如何取得 nginx反向代理时的真实 IP
  • 通过使用Nginx 反向代理来解决JS跨域问题 http://blog.csdn.net/mzhaocai/article/details/79238338
  • 反向代理 我的Ubuntu服务器上使用的NGINX反向代理
  • 网上找到的nginx反向代理配置文件通常只能通过80端口进行访问,映射到其他端口时系统可能获取不到,经过找资料以及试验,找到了能够解决的配置方法。
  • Nginx反向代理和负载均衡部署指南,具体如下: 1. 安装 1) 从Nginx官网下载页面(http://nginx.org/en/download.html)下载Nginx最新版本(目前是1.5.13版本)安装包; 2) 解压后复制到部署目录。  2. 启动和...
  • (1)使用Nginx反向代理,根据访问的路径跳转到不同端口的服务中,Nginx监听端口为8001。 访问 http://127.0.0.1:9001/deu/ 直接跳转到127.0.0.1:8016 访问 http://127.0.0.1:9001/vod/ 直接跳转到127.0.0
  • 碰到问题:移动用户访问web服务器www.osyunwei.com很慢解决办法:1、在移动机房放置一台nginx反向代理服务器2、通过域名DNS智能解析,所有移动用户访问www.osyunwei.com时解析到nginx反向代理服务器3、nginx反向代理...
  • 解决配置Nginx反向代理后,可以通过域名访问Linux下部署的Tomcat,但却访问不到部署的项目问题
  • Nginx反向代理服务器配置基础教程
  • nginx反向代理配置

    2017-08-11 14:59:46
    nginx反向代理配置 动静分离不错的代理

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 121,063
精华内容 48,425
关键字:

nginx反向代理