良许Linux教程网 干货合集 nginx反向代理以及过滤静态文件的常用配置

nginx反向代理以及过滤静态文件的常用配置

nginx有两个重要的功能,一个是静态资源服务器,另一个就是反向代理,本文主要对nginx作为反向代理功能的主要配置做一个讲解。

nginx反向代理以及过滤静态文件的常用配置nginx反向代理以及过滤静态文件的常用配置 nginx有两个重要的功能,一个是静态资源服务器,另一个就是反向代理,本文主要对nginx作为反向代理功能的主要配置做一个讲解。下面先看一个nginx的完整配置.

nginx配置

一个nginx的完整配置及解释

user  www www;
worker_processes auto;
error_log  /www/wwwlogs/nginx_error.log  crit;
pid        /www/server/nginx/logs/nginx.pid;
worker_rlimit_nofile 51200;

events
   {
       use epoll;
       worker_connections 51200;
       multi_accept on;
   }

http
   {
       include       mime.types;
       #include luawaf.conf;

       include proxy.conf;

       default_type  application/octet-stream;

       server_names_hash_bucket_size 512;
       client_header_buffer_size 32k;
       large_client_header_buffers 4 32k;
       client_max_body_size 50m;

       sendfile   on;
       tcp_nopush on;

       keepalive_timeout 60;

       tcp_nodelay on;

       fastcgi_connect_timeout 300;
       fastcgi_send_timeout 300;
       fastcgi_read_timeout 300;
       fastcgi_buffer_size 64k;
       fastcgi_buffers 4 64k;
       fastcgi_busy_buffers_size 128k;
       fastcgi_temp_file_write_size 256k;
       fastcgi_intercept_errors on;

       gzip on;
       gzip_min_length  1k;
       gzip_buffers     4 16k;
       gzip_http_version 1.1;
       gzip_comp_level 2;
       gzip_types     text/plain application/javascript application/x-javascript text/javascript text/css application/xml;
       gzip_vary on;
       gzip_proxied   expired no-cache no-store private auth;
       gzip_disable   "MSIE [1-6]\.";

       limit_conn_zone $binary_remote_addr zone=perip:10m;
       limit_conn_zone $server_name zone=perserver:10m;

       server_tokens off;
       access_log off;

server
   {
      listen       80;
      server_name www.bxoon.com;
      location / {
           proxy_pass http://www.bxoon.com:8088/;
      }

       location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|css|js|eot|svg|ttf|woff|woff2|properties|json)$ {
               proxy_pass http://localhost:8088;
               proxy_read_timeout 600s;
           proxy_set_header ?X-Real-IP ?$remote_addr;
           proxy_set_header Host $host:$server_port;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       }
   }
server
   {
      listen       80;
      server_name www.43ba.com;
      location / {
           proxy_pass http://www.bxoon.com:8088/;
      }
   }
}

主要部分在server里面

server
   {
      listen       80;         #监测的端口号
      server_name www.bxoon.com;   #访问的域名
      location / {
           proxy_pass http://www.bxoon.com:8088/; #转发到哪里去
      }

       location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|css|js|eot|svg|ttf|woff|woff2|properties|json)$ {
               proxy_pass http://localhost:8088;
               proxy_read_timeout 600s;
           proxy_set_header ?X-Real-IP ?$remote_addr;
           proxy_set_header Host $host:$server_port;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       }
   }
server
   {
      listen       80;
      server_name www.43ba.com;
      location / {
           proxy_pass http://www.bxoon.com:8088/;
      }
   }

这里的意思是访问 www.bxoon.com:80 这样的地址的请求会被转发到www.bxoon.com:8088里面去。当然,我们需要把www.bxoon.com映射到nginx部署的所在服务器的IP,这样nginx才能接收到请求进而进行转发。 server是可以配置多个的,比如上面的配置就有两个server,第二个server的意思是把访问 www.43ba.com的请求解析到www.bxoon.com:8088 这里去。也就是说,对于上述请求,无论用户访问的是www.bxoon.com:80还是 www.43ba.com,最终请求都会被转发到www.bxoon.com:8088

关于静态资源过滤

按照上诉配置配置好之后会发现css、js、图片这些都加载不出来了,这是因为nginx默认是开启了静态资源过滤的,这是什么意思呢?文章开头说过,nginx处了可以作为反向代理服务器外还可以作为静态资源服务器,所以nginx对于css、js、图片这些静态资源,默认是开启代理的,当浏览器请求这些资源的时候nginx默认不会去我们的后端tomcat请求资源,而是会在自己的目录下面找,但是因为我们的项目是放在tomcat里面,很明显这里是找不到的,所以就会加载不出来,那么我们需要配置nginx不帮我们代理静态资源,那么就可以做如下配置

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|css|js|eot|svg|ttf|woff|woff2|properties|json)$ {
           proxy_pass http://localhost:8088;
           proxy_read_timeout 600s;
     proxy_set_header ?X-Real-IP ?$remote_addr;
     proxy_set_header Host $host:$server_port;
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       }

这是一个正则表达式的写法,括号中的代表文件的类型,配置了这个之后,就是说请求静态资源的时候不会去nginx配置的静态资源目录下找,而会直接去原项目中找,也就是我们后端的tomcat中找。

使用Nginx过程中的一些报错处理方法

[error] 21#21: *1 open() “/usr/share/nginx/html/favicon.ico” failed (2: No such file or directory) 在配置文件中配置如下

location = /favicon.ico {
   log_not_found off;
   access_log off;
}

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

137e00002230ad9f26e78-265x300
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部