nginx学习笔记

本文介绍了Nginx作为HTTP服务器、反向代理和负载均衡器的基本使用。讲解了Nginx的启动关闭、配置反向代理以解决跨域问题,以及如何结合Tomcat实现负载均衡和故障转移。通过修改配置文件,Nginx能够将请求分发到不同端口的Tomcat实例,实现高可用性和流量分配。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

nginx是什么?

nginx是一款轻量级、高性能的HTTP服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。

nginx的优点:

1、占内存小,可以实现高并发连接,处理响应快;

2、可以实现HTTP服务器、虚拟主机、反向代理、负载均衡;

3、配置简单;

4、可以不暴露真实服务器的ip

nginx的启动与关闭

将nginx压缩包解压后,双击nginx.exe,或者使用命令 start nginx   就启动成功了

验证:http://localhost

Welcome to nginx!

If you see this page, the nginx web server is successfully installed and working. Further configuration is required.

For online documentation and support please refer to nginx.org.
Commercial support is available at nginx.com.

Thank you for using nginx.

这里说一下,nginx默认监听80端口

当第一次启动nginx时,输入localhost,访问地址就是http://127.0.0.1:80,页面跳转到上述Welcome to nginx!

响应的页面可以再nginx.conf文件中配置的

server {
        listen       80;
        server_name  localhost;
        location / {
            root   html;
            index  index2.html index2.htm;
        }
    }

所以欢迎页面可以自己设置,只要将页面放在静态资源的文件夹html中,并修改index即可。

(当然也可以不放在html文件夹中,只要修改root就行了,要使用相对路径)

关闭nginx:

1、cmd进入到nginx解压目录

输入命令: nginx -s stop

2、直接在任务管理器中关闭nginx进程。

有时候上面两个方法都关不掉,就干错简单粗暴一点,直接用dos命令关闭这个进程

taskkill /f /t /im nginx.exe

使用nginx实现反向代理

=====================================分割线========================================

记下一些可能很low的问题,但是我还真不会

将Tomcat解压后,运行bin文件夹下的startup.bat文件,黑窗口一闪而过,然后我百度,在文件最后加上pause,查看具体报错信息

the JRE_HOME environment variable is not defined correctly

解决办法:添加JRE_HOME环境变量

然后再启动,又报错

java.lang.UnsatisfiedLinkError:D:\apache-tomcat-7\tcnative-1.dll:can't load IA 64bit .dll on a AMD 64-bit platform

查看了JAVA_HOME和JRE_HOME以及PATH等环境变量,都不知道这个D:\apache-tomcat-7是在哪里配置的,后俩发现是CATALINA-HOME环境变量,删掉了以后就好了。

一、修改tomcat访问主页

webapps\ROOT文件夹内的东西可以全部删除,然后自己创建一个index.html文件即可。

二、修改tomcat启动端口

conf\server.xml文件

注意:改的不是一个端口,而是三个

<Server port="8005" shutdown="SHUTDOWN">

<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

<Connector port="8010" protocol="AJP/1.3" redirectPort="8443" />

========================================================================================

现在两个tomcat以不同的端口已经启动成功了,下面通过nignx实现反向代理

第一:配置域名(DNS解析)

C:\Windows\System32\drivers\etc\hosts

127.0.0.1       8080.itmayiedu.com

 127.0.0.1       8081.itmayiedu.com

当在浏览器中输入域名8080.itmayiedu.com或者8081.itmayiedu.com,通过DNS解析到127.0.0.1,

但是还必须在域名后面添加端口号,然后使用指定端口的Tomcat服务器。

第二:配置nginx

conf\nginx.conf文件

server {
        listen       80;
        server_name  8080.itmayiedu.com;
        location / {
            proxy_pass  http://127.0.0.1:8080;
            index  index.html index.htm;
        }
    }
    
    server {
        listen       80;
        server_name  8081.itmayiedu.com;
        location / {
            proxy_pass  http://127.0.0.1:8081;
            index  index.html index.htm;
        }
    }

重启nginx,输入域名8080.itmayiedu.com,将反向代理到127.0.0.1:8080,同理,8081.itmayiedu.com,反向代理到127.0.0.1:8081

nginx解决浏览器跨域访问问题

跨域访问问题是使用ajax访问的域名跟浏览器访问网站的域名不一致的问题,可以使用nginx解决

假设问题情境:我们网站的域名是itmayiedu.com,部署在一台服务器上(假设是8080端口的一台服务器),而ajax要跨域访问到另一台服务器(假设是8081端口的另一台服务器)

配置如下:

server {
        listen       80;
        server_name  itmayiedu.com;
        location / {
            proxy_pass  http://127.0.0.1:8080;
            index  index.html index.htm;
        }
        location /tomcat_8081/ {
            proxy_pass  http://127.0.0.1:8081/;
            index  index.html index.htm;
        }
    }

(注意:第二个location配置中的斜杠)

nginx加tomcat实现负载均衡

负载均衡:提供一种廉价、有效、透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。

简单的说就是,将客户端的http请求,均分到所有的服务器中,不会让一个服务器因为请求太多而宕机,也不会让一个服务器请求太少而浪费。

第一:配置域名(DNS解析)

C:\Windows\System32\drivers\etc\hosts

127.0.0.1       www.itmayiedu.com

第二:配置nginx

conf\nginx.conf文件

#upstream 可以配置多个上游服务器(权重算法,默认轮询)

upstream nginxTestServer {
        server 127.0.0.1:8080 weight=1;  
        server 127.0.0.1:8081 weight=1;
    }
    
    server {
        listen       80;
        server_name  www.itmayiedu.com;
        location / {
            proxy_pass  http://nginxTestServer;
            index  index.html index.htm;
        }
    }

当输入域名www.itmayiedu.com,将反向代理到nginxTestServer服务器,而nginxTestServer配置了两个tomcat服务器,权重各为1,效果就是两个服务器逐次轮询,实现负载均衡。

(注意浏览器缓存,我测试的时候IE浏览器有缓存,响应的请求一直不变,都是第一个服务器。)

 

nginx负载均衡故障转移

设置超时时间

server {
        listen       80;
        server_name  www.itmayiedu.com;
        location / {
            proxy_pass  http://nginxTestServer;
            proxy_connect_timeout 1s;
            proxy_send_timeout 1s;
            proxy_read_timeout 1s;

            index  index.html index.htm;
        }
    }

<think>嗯,用户想了解Excel中的VLOOKUP函数的用法和参数含义。首先,我需要回忆一下VLOOKUP的基本结构。VLOOKUP是垂直查找函数,用于在表格的首列查找指定的值,然后返回该行中指定列的数据。它的四个参数分别是查找值、表格范围、列索引号和匹配模式。 接下来,我得确认每个参数的具体作用。第一个参数是lookup_value,也就是用户要查找的值,比如产品ID或者姓名。第二个参数是table_array,即查找的范围,这里要注意的是,查找值必须位于这个范围的第一列,否则函数无法正确工作。第三个参数是col_index_num,也就是用户想要返回的数据在表格范围中的第几列,这个列数是从表格范围的第一列开始算起的,不是整个工作表的列。第四个参数是range_lookup,决定是精确匹配还是近似匹配,通常用FALSE或0来指定精确匹配,避免错误。 然后,用户可能需要一个具体的例子来理解如何使用。比如,假设有一个产品价格表,用户想根据产品ID查找对应的价格。这时候,VLOOKUP就可以在ID列查找,然后返回价格列的数据。同时,要提醒用户注意表格范围最好使用绝对引用,比如$A$2:$C$100,这样在拖动公式时范围不会变化。 可能遇到的问题也需要考虑。比如,如果查找值不在表格的第一列,或者列索引号超过了表格的列数,函数会返回错误。此外,数据格式不一致也可能导致问题,比如查找值是数字,而表格中是文本格式的数字,这时候需要统一格式。还有,当出现#N/A错误时,可能是查找值不存在,或者匹配模式设置不正确,需要检查参数是否正确。 用户可能还会问到如何避免常见的错误,比如部分数据匹配出错的情况。这时候需要检查是否有多余的空格,或者数据格式不一致,或者表格范围没有锁定导致拖动时偏移。此外,XLOOKUP作为VLOOKUP的升级版,可能在某些情况下更方便,比如可以向左查找或者返回多列数据,这也是可以提及的内容。 最后,整理步骤,从基础语法到参数说明,再到具体案例,逐步引导用户理解如何使用VLOOKUP函数。同时,提供常见错误和解决方法,帮助用户在实际应用中避免问题。如果有必要,还可以比较VLOOKUP和其他查找函数的区别,比如HLOOKUP或XLOOKUP,但根据用户的问题,主要集中在VLOOKUP本身即可。</think>### Excel VLOOKUP函数详解 #### 一、基础语法与参数说明 VLOOKUP函数的语法为: $$=VLOOKUP(lookup\_value, table\_array, col\_index\_num, [range\_lookup])$$ 包含4个参数: 1. **lookup_value**(必填):要查找的值(如单元格引用或具体值) 2. **table_array**(必填):包含数据的表格范围(必须包含查找列和返回列) 3. **col_index_num**(必填):返回值所在列的序号(从table_array第一列开始计数) 4. **range_lookup**(可选):匹配类型 - `TRUE`/`1`:近似匹配(默认值,需数据升序排列) - `FALSE`/`0`:精确匹配(常用选项) [^1][^2] #### 二、使用步骤演示(工资表查询案例) 假设需要根据员工编号查询工资: 1. 建立查询单元格(如`B12`) 2. 输入公式: ```excel =VLOOKUP(A12, $A$2:$D$100, 4, 0) ``` - `A12`:待查询的员工编号 - `$A$2:$D$100`:锁定数据区域(绝对引用) - `4`:返回第4列(工资列) - `0`:精确匹配 [^2][^3] #### 三、常见错误与解决方法 | 错误现象 | 原因 | 解决方案 | |---------|------|---------| | #N/A | 查找值不存在 | 检查数据源或改用`IFERROR`容错 | | #REF! | 列序号超出范围 | 确认col_index_num ≤ 表格列数 | | 部分匹配失败 | 数据格式不一致 | 统一数值/文本格式 | | 结果错位 | 表格未锁定 | 使用`$`符号固定区域引用 | [^3][^4] #### 四、进阶技巧 1. **多条件查询**: 使用辅助列合并多个条件字段 ```excel =VLOOKUP(A2&B2, $D$2:$F$100, 3, 0) ``` 2. **通配符匹配**: `"*"`匹配任意字符,`"?"`匹配单个字符 ```excel =VLOOKUP("张*", $A$2:$C$100, 3, 0) ``` 3. **跨表查询**: 引用其他工作表数据 ```excel =VLOOKUP(A2, Sheet2!$A$2:$D$100, 4, 0) ``` [^1][^4]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值