link: http://www.iteye.com/topic/966903
今天工作之余,继续拘捣鼓了一下nginx,尝试了一下,nginx反向代理,动静态请求分离,以及nginx缓存应用,以及使用ngx_cache_purge清除指定URL
一,nginx反向代理配置
#tomcat
- upstream tomcat_server{
- server 127.0.0.1:8080;
- }
-
-
-
- erver{
- listen 80;
- server_name www.wolfdream.com;
-
- location / {
-
- proxy_redirect off;
- proxy_set_header Host $host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- proxy_pass http:
-
- }
显然就是用户访问www.wolfdream.com(需要设置本地localhost,将www.wolfdream.com指向nginx所在IP)的时候(或将www.wolfdream.com直接写在nginx所在的IP地址),将请求转到到后台的tomcat服务器,即127.0.0.1:8080,并将请求到的数据转发给client
二,动静态请求相分离
神马意思?图片,JS,HTML等静态的东西去访问一台专门的服务器,而动态的请求去访问另一台服务器。就这么简单,上例子:
- server {
- listen 192.168.154.128:80;
- server_name image.wolfdream.com;
- index index.html;
-
-
- #proxy_pass http:
-
- #charset koi8-r;
-
- #access_log logs/host.access.log main;
-
-
-
- location / {
- root html;
- #index index.html index.htm;
- proxy_redirect off;
- proxy_set_header Host $host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
-
-
- }
-
-
-
- location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$
- {
-
- valid_referers none blocked 192.168.154.128 192.168.154.1;
- if ($invalid_referer)
- {
- rewrite ^ /403.jpg break;
- }
-
- if (!-f $request_filename) {
- rewrite ^ /404.jpg last;
- }
-
- expires 30d;
-
- }
- #error_page 404 /404.html;
-
- # redirect server error pages to the static page /50x.html
- #
- error_page 500 502 503 504 /50x.html;
- location = /404.jpg {
- root html;
- }
-
- }
-
- tomcat
- upstream tomcat_server{
- server 127.0.0.1:8080;
- }
-
-
- server{
- listen 192.168.154.128;
- server_name www.wolfdream.com;
-
- location / {
-
-
- proxy_redirect off;
- proxy_set_header Host $host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- proxy_pass http:
-
- }
-
-
-
- }
上面这种方式是通过设定不同的域名,可不可以在同一个域名中,通过判断后缀来将动态与静态请求相分离呢?
- #tomcat
- upstream tomcat_server{
- server 127.0.0.1:8080;
- }
-
-
- server{
- listen 192.168.154.128;
- server_name www.wolf.com;
-
- location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$
- {
-
- root html;
-
- }
-
-
- location ~ .*.(jsp|do)$ {
-
- proxy_redirect off;
- proxy_set_header Host $host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- proxy_pass http:
-
- }
OK!同一个域名,根据后缀不同,请求不同的服务,实现动态静态请求相分离。仔细想一想,如果又出现了一种静态的文件,比如*.abc ,那难道又去修改那个配制文件吗?显然不太合理,所以可以考虑将所有的表态文件放在同一个根目录下面,比如/static那么可以将上面的静态页面请求修改一下:
- location /static
- {
-
- root html/static;
-
- }
版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/zhaoyingm/article/details/7517551
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。