找服务器给各位分享nginx静态文件知识,如有帮助,请关注我们!
本文目录:
- 1、nginx配置负载均衡,访问页面不加载JS、CSS等静态文件,F12查看源代码发现,jsp获取basePath错误
- 2、.htaccess转换nginx服务器伪静态文件
- 3、Tomcat 与Nginx
- 4、前端打包gzip + nginx开启静态gzip
- 5、手把手教你nginx下如何添加伪静态
- 6、采用nginx+php,nginx中静态文件没有进行gzip压缩
nginx配置负载均衡,访问页面不加载JS、CSS等静态文件,F12查看源代码发现,jsp获取basePath错误
在NGINX.CONF文件中配置地址和IP:
proxy_set_header??????? Host $host; #从header头中获取的主机名
proxy_set_header??????? X-Real-IP $remote_addr;
#获取header头中获取的主机的真实IP
proxy_set_header?????? X-Forwarded-For?? $proxy_add_x_forwarded_for;
#获取header头中获取代理者的真实ip
.htaccess转换nginx服务器伪静态文件
nginx.conf 文件放在网站根目录下
location / {
rewrite ^tweet/([0-9]+)/?$ index.php/?app=tweetaction=viewid=$1 last;
.
.
.
.
}
在虚拟机配置文件中加入 include 网站路径/nginx.conf
Tomcat 与Nginx
Nginx是一个HTTP服务器 ,可以将服务器上的静态文件(如HTML、图片)通过HTTP协议展现给客户端。
客户端本来可以 直接 通过HTTP协议访问某网站应用服务器,如果网站管理员在中间加上一个Nginx,客户端请求Nginx,Nginx请求应用服务器,然后将结果返回给客户端。
负载均衡: 将 相同的应用 部署在多台服务器上,将大量用户的请求分配给多台机器处理。同时带来的好处是, 其中一台服务器万一挂了,只要还有其他服务器正常运行 ,就不会影响用户使用。
虚拟主机: 如将 和 两个网站部署在同一台服务器上,两个域名解析到同一个IP地址,但是用户通过两个域名却可以打开两个完全不同的网站,互相不影响,就像访问两个服务器一样,所以叫两个虚拟主机。
在服务器8080和8081分别开了一个应用,客户端通过不同的域名访问,根据server_name可以反向代理到对应的应用服务器。
动态静态资源分离:
之前开发web方面的程序时候我们习惯将 html、css等资源文件也放置于Tomcat中 ,用户访问后tomcat需要将请求的这些静态资源文件一并返回给用户。
再者如果有多台同业务逻辑的tomcat服务器的话,同样的资源还需要在每个服务器上放一份,同时也增加了tomcat服务器的网络IO。
如果我们只讲JSP之类的请求交给tomcat, 在代理服务器上存放静态资源 ,当用户的请求非动态资源的时候, 我们完全可以将代理服务器的静态资源直接返回给用户,而不去增大Tomcat的压力 ,
tomcat只需要 负责逻辑处理 和 动态资源的加载 就可以了。
Tomcat的高并发性能很弱 ,所以在处理 静态请求的时候,我们就抛给Nginx处理 ,而Tomcat专门处理动态请求。
Nginx和Tomcat结合方式 :
WEB-INF
WEB-INF是Java的WEB应用的安全目录。所谓安全就是客户端无法访问, 只有服务端可以访问的目录 。
前端打包gzip + nginx开启静态gzip
服务端动态gzip是常见的方案,即服务端判断浏览器http请求头中的Accept-Encodin是否有gzip,有的话就说明浏览器支持gzip服务器就实时压缩生成gzip返回给浏览器,否则就返回原文件。但是这种模式是比较消耗服务器CPU的,如果前端打包的时候就压缩好,把原文件和gzip文件全丢到服务器上,服务器不干压缩的活,只区分浏览器是不是支持gzip,支持就返gzip文件,不支持就返原文件,那就能省去服务器动态压缩的环节。
PS:因为Linux系统下nginx不能向磁盘写文件,所以服务端只能实时生成。
PS:服务器数量少的条件,就不要用nginx动态压缩了。
不同的前端框架配置gzip的方式不一样,这里不多说,网上方法非常多。这里我用的VUE,可以参考下:
1、前端文件部署到服务器后,在nginx.config的目标应用location下配置 gzip_static;
gzip_static on;
gzip_http_version 1.1;
gzip_proxied expired no-cache no-store private auth;
gzip_disable “MSIE [1-6]\.”;
gzip_vary on ;`
说明nginx的编译参数缺失,需要添加–with-http_gzip_static_module参数,然后重新编译:
3、验证静态gzip是否生效:
手把手教你nginx下如何添加伪静态
1、先进入到nginx的配置文件目录,输入以下命令:
cd /alidata/server/nginx/conf/rewrite
2、再输入:ll
3、输入以下命令:
cd /alidata/server/nginx/conf/vhosts
4、进入到网站配置目录,打开配置文件,修改好伪静态调用文件;
5、测试配置的文件是否正确,输入:
/alidata/server/nginx/sbin/nginx -t
nginx: the configuration file /alidata/server/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /alidata/server/nginx/conf/nginx.conf test is successful
如果出现以上两句话就说明配置成功了。
6、下面重启下nginx
/alidata/server/nginx/sbin/nginx -s reload
7、伪静态配置完成
采用nginx+php,nginx中静态文件没有进行gzip压缩
用nginx+php集成包phpfind或phpstudy。纯中文绿色解压即可,你试试吧,超级简单自动配好nginx+php环境
本文关于nginx静态文件和nginx静态文件转发其他服务器的内容来源于网络,版权归原作者所有,如有侵权,请联系删除!