nginx发布本地静态资源
前言
经常在访问网站时看到nginx,就去了解了下。
什么是Nginx?
Nginx是一款轻量级的Web服务器、反向代理服务器,由于它的内存占用少,启动极快,高并发能力强,在互联网项目中广泛应用。
随着当今互联网的迅速发展,单点服务器早已无法承载上万个乃至数十万个用户的持续访问。比如一台Tomcat服务器在理想状态下只能够可以承受住2000个左右的并发量,为了解决这个问题,就需要多台Tomcat服务器来进行负载均衡。
那么,应该如何实现负载均衡?Nginx就是其中的一种解决方案,当用户访问网站时,Nginx拦截到这个访问请求,并将其通过轮询的方式均匀地分配到不同的服务器上。
正向代理、反向代理
正向代理: 我们平时需要访问国外的浏览器是不是很慢,比如我们要看推特,看GitHub等等。我们直接用国内的服务器无法访问国外的服务器,或者是访问很慢。所以我们需要在本地搭建一个服务器来帮助我们去访问。那这种就是正向代理。(浏览器中配置代理服务器)
客户端将自己的请求率先发给代理服务器,通过代理服务器将请求转发给服务器。我们常用的VPN就是一种代理服务器,为了可以连上国外的网站,客户端需要使用一个可以连接外网的服务器作为代理,并且客户端能够连接上该代理服务器。
反向代理: 那什么是反向代理呢。比如:我们访问淘宝的时候,淘宝内部肯定不是只有一台服务器,它的内部有很多台服务器,那我们进行访问的时候,因为服务器中间session不共享,那我们是不是在服务器之间访问需要频繁登录,那这个时候淘宝搭建一个过渡服务器,对我们是没有任何影响的,我们是登录一次,但是访问所有,这种情况就是 反向代理。对我们来说,客户端对代理是无感知的,客户端不需要任何配置就可以访问,我们只需要把请求发送给反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,再返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器的地址。(在服务器中配置代理服务器)
总而言之:正向代理是代理客户端,反向代理代理服务器。
Windows下安装与配置
下载
下载windows版本安装包,解压即可
解压后目录如下
配置
进入nginx-1.24.0\conf 文件夹,编辑nginx.conf配置文件
会返回index.html文件。
访问localhost:3737/hxh/demo1.html,会请求 D:\cesiumproject\cesium_demo\src\demo.html。
访问localhost:3737/test/tdt.html,会请求 D:\tilemap\test_html\tdt.html。
值得注意的是:
1
2
3
4
5
6
7
8
9location /hxh {
alias D:/cesiumproject/cesium_demo/src;
}
访问localhost:3737/hxh下的资源会直接指向D:\cesiumproject\cesium_demo\src
location /hxh {
root D:/cesiumproject/cesium_demo/src;
}
访问localhost:3737/hxh下的资源会直接指向D:\cesiumproject\cesium_demo\src\hxh另外:
直接访问路径如/hxh,会返回该相应路径下的index.html文件。
如果没有index.html文件,可以设置显示目录
即:访问目录时,目录下有index.html文件,则返回该文件;若无,且设置了autoindex on 则返回目录
1
2
3
4
5
6location /test {
root /data/www/file //指定实际目录绝对路径;
autoindex on; //开启目录浏览功能;
autoindex_exact_size on; //关闭详细文件大小统计,让文件大小显示MB,GB单位,默认为b;
autoindex_localtime on; //开启以服务器本地时区显示文件修改日期!
}可局域网内访问,手机也可以
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24server {
listen 3737;
server_name 223.2.36.7; # 设置为本机的ip
location / {
root html;
index index.html index.htm;
}
location /hxh {
alias D:/cesiumproject/cesium_demo/src;
autoindex on;
}
location /test {
alias D:/tilemap/test_html;
autoindex on;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}启停
start nginx.exe ## 启动服务
nginx.exe -s stop ## 快速停止服务
nginx.exe -s quit ## 优雅的 停止服务nginx.exe -s reload ## 重新加载 配置文件,这命令可以不用停止nginx
nginx.exe -s reopen ## 重新打开日志文件