微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Nginx的骚操作你知道多少?

在Docker环境下的安装

下载Nginx的docker镜像

docker pull Nginx:1.10  

从容器中拷贝Nginx配置

docker run -p 80:80 --name Nginx \ -v /mydata/Nginx/html:/usr/share/Nginx/html \ -v /mydata/Nginx/logs:/var/log/Nginx  \ -d Nginx:1.10   docker container cp Nginx:/etc/Nginx /mydata/Nginx/   mv Nginx conf   docker stop Nginxdocker rm Nginx

使用docker命令启动

docker run -p 80:80 --name Nginx \ -v /mydata/Nginx/html:/usr/share/Nginx/html \ -v /mydata/Nginx/logs:/var/log/Nginx  \ -v /mydata/Nginx/conf:/etc/Nginx \ -d Nginx:1.10  

反向代理

反向代理就是当请求访问你的代理服务器时,代理服务器会对你的请求进行转发,可以转发到静态的资源路径上去,也可以转发到动态的服务接口上去。下面我们以对域名进行代理为例,来讲讲如何进行静态代理和动态代理。

静态代理

静态代理就是将请求代理到不同的静态资源路径上去,这里我们将对docs.test.com的请求代理到我的文档项目中,对mall.test.com的请求代理到mall的前端项目中。

192.168.6.132 docs.test.com192.168.6.132 mall.test.com

/mydata/Nginx/conf/conf.d文件夹中添加配置文件docs.conf对文档项目进行反向代理:

server {     listen       80;     server_name  docs.test.com; #修改域名       location / {         root   /usr/share/Nginx/html/docs; #代理到docs文件夹中         index  index.html index.htm;     }       error_page   500 502 503 504  /50x.html;     location = /50x.html {         root   /usr/share/Nginx/html;     }   }   server {     listen       80;     server_name  mall.test.com; #修改域名       location / {         root   /usr/share/Nginx/html/mall; #代理到mall文件夹中         index  index.html index.htm;     }       error_page   500 502 503 504  /50x.html;     location = /50x.html {         root   /usr/share/Nginx/html;     }   }   docker restart Nginx
  • 通过docs.test.com可访问我们的文档项目了:

 


 

  • 通过mall.test.com访问mall的前端项目了:

 


 

动态代理

动态代理就是把代理服务器的请求转发到另一个服务上去,这里我们将对api.test.com的请求代理到api-admin的后台服务上去。

192.168.6.132 api.te.com   server {     listen       80;     server_name  api.test.com; #修改域名       location / {     proxy_pass   http://120.27.63.9:8080; #修改为代理服务地址         index  index.html index.htm;     }       error_page   500 502 503 504  /50x.html;     location = /50x.html {         root   /usr/share/Nginx/html;     }   }  

 


 

文件压缩

如果我们租用了一个带宽很低的服务器,网站访问速度会很慢,这时我们可以通过让Nginx开启GZIP压缩来提高网站的访问速度。这里我们以mall的前端项目为例来演示下它的提速效果

server {     listen       80;     server_name  mall.test.com;          limit_rate 128k; #限制网速为128K       location / {         root   /usr/share/Nginx/html/mall;         index  index.html index.htm;     }       error_page   500 502 503 504  /50x.html;     location = /50x.html {         root   /usr/share/Nginx/html;     }   }  
  • 对mall的前端项目mall.test.com进行访问,我们可以发现网站中有个js文件比较大,需要加载12s:

 

图片



 

  • Nginx返回请求头信息如下:

 

图片



 

http {       gzip on; #开启gzip     gzip_disable "msie6"; #IE6不使用gzip     gzip_vary on; #设置为on会在Header里增加 "vary: Accept-Encoding"     gzip_proxied any; #代理结果数据的压缩     gzip_comp_level 6; #gzip压缩比(1~9),越小压缩效果越差,但是越大处理越慢,所以一般取中间值     gzip_buffers 16 8k; #获取多少内存用于缓存压缩结果     gzip_http_version 1.1; #识别http协议的版本     gzip_min_length 1k; #设置允许压缩的页面最小字节数,超过1k的文件会被压缩     gzip_types application/javascript text/css; #对特定的MIME类型生效,js和css文件会被压缩       include /etc/Nginx/conf.d/*.conf; }  
  • 再次对mall的前端项目mall.macrozheng.com进行访问,我们可以发现js文件已经被压缩,加载时间缩短到3.88s,提速3倍左右:

 

图片



 

 

图片



 

地址重写

有的时候我们的网站更换了域名,但还有用户在使用老的域名访问,这时可以通过Nginx的地址重写来让用户跳转到新的域名进行访问。

  • 比如说原来我们用的docs.test.com这个域名不用了,现在改成www.test.com了来访问文档项目了;

  • 修改docs.conf配置文件,将地址带参数重写到新地址:

server {     listen       80;     server_name  docs.test.com;           rewrite "^/(.*)$" http://www.test.com/$1; #地址重写到新地址       location / {         root   /usr/share/Nginx/html/docs;          index  index.html index.htm;     }       error_page   500 502 503 504  /50x.html;     location = /50x.html {         root   /usr/share/Nginx/html;     }   }  
  • 此时访问旧域名docs.test.com会直接跳转www.test.com去。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐