nginx初步学习

本文介绍了Nginx的基本配置,包括location指令的使用,如针对.jsp文件的反向代理到本地Tomcat服务器,以及静态资源(html, js, css, png, gif)的路径设置。同时,文章还展示了如何设置upstream负载均衡,例如将请求分配给不同权重的本地Tomcat实例。" 106512586,9680840,Python空间数据处理实战教程,"['Python编程', '数据处理', '机器学习', '时空数据', '编程教程']

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

1.nginx 是一款自由的、开源的、高性能HTTP服务器和反向代理服务器
正向代理:代理服务器代表用户访问服务器(VPN)
反向代理:代理服务器就是一个入口,用户访问这个入口,入口把用户转发到实际的服务器

nginx好处:1.负载均衡
2.高并发
3.高可靠

2.windows 下本机nginx
在nginx.conf 中 写localhost 跳转到百度举例
server {
listen 80;
server_name 119.75.213.50:80;//跳转的位置 百度的ip

#charset koi8-r;

#access_log logs/host.access.log main;

location / {
proxy_pass http://www.baidu.com;
}
listen:表示当前的代理服务器监听的端口,默认的是监听80端口。注意,如果我们配置了多个server,这个listen要配置不一样,不然就不能确定转到哪里去了。
server_name:表示监听到之后需要转到哪里去,这时我们直接转到本地,这时是直接到nginx文件夹内。

location:表示匹配的路径,这时配置了/表示所有请求都被匹配到这里
//下面这两个参数静态写死了
root:里面配置了root这时表示当匹配这个请求的路径时,将会在这个文件夹内寻找相应的文件,这里对我们之后的静态文件伺服很有用。
index:当没有指定主页时,默认会选择这个指定的文件,它可以有多个,并按顺序来加载,如果第一个不存在,则找第二个,依此类推。

2.nginx 过滤:
下面我们来进行一下配置,让JSP页面直接给tomcat,而html,png等一些图片和JS等直接给nginx进行缓存。
  1. location ~ \.jsp$ {  
  2.         proxy_pass http://localhost:8080;  
  3. }  
  4.           
  5. location ~ \.(html|js|css|png|gif)$ {  
  6.     root D:/software/developerTools/server/apache-tomcat-7.0.8/webapps/ROOT;  
  7. }  
3.nginx 转发多台

  1. upstream local_tomcat {  
  2.     server localhost:8080;  
  3. }  
  4.   
  5. server{  
  6.         location / {  
  7.            proxy_pass http://local_tomcat;  
  8.         }  
  9.         #......其他省略  
  10. }  
我们在server外添加了一个upstream,而直接在proxy_pass里面直接用http://+upstream的名称来使用。
upstream中的server元素必须要注意,不能加http://,但proxy_pass中必须加。
但有时我们就不想它挂的时候访问另外一个,而只是希望一个服务器访问的机会比另外一个大,这个可以在server最后加上一个weight=数字来指定,数字越大,表明请求到的机会越大
  1. upstream local_tomcat {  
  2.     server localhost:8080 weight=1;  
  3.     server localhost:9999 weight=5;  
  4. }  

3.服务器实例

1.进入/nginx/conf cat nginx.conf

我们看到和本机nginx不同,它配置的比较少,而且include一些conf(详细的配置信息)
include vhost/*.conf;
include /home/q/www/nginx-new/*.conf;
2.进入/home/q/www/nginx-new/* ,我们可以看到详细的配置文件

当用户的请求打到ng服务器上时,ng立刻通过$prefix判断请求的机器,location再匹配地址请求,再通过proxy_pass转到upstream,从中获取uri的端口号 ,最后转到后台处理的那台服务器上

3.location:

location / { # 因为所有的地址都以 / 开头,所以这条规则将匹配到所有请求 # 但是正则和最长字符串会优先匹配 [ configuration B ]
}

以=开头表示精确匹配
如 A 中只匹配根目录结尾的请求,后面不能带任何字符串。
^~ 开头表示uri以某个常规字符串开头,不是正则匹配
~ 开头表示区分大小写的正则匹配;
~* 开头表示不区分大小写的正则匹配
/ 通用匹配, 如果没有其它匹配,任何请求都会匹配到
顺序 no优先级:
(location =) > (location 完整路径) > (location ^~ 路径) > (location ~,~* 正则顺序) > (location 部分起始路径) > (/)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值