当前位置:  操作系统/服务器>linux
本页文章导读:
    ▪nginx js或图片不显示的解决方法      解决方法如下: 在expires xxxd后加上“break;”。 修改nginx.conf文件,加入: location ~* ^.+\.(jpg|jpeg|gif|png|bmp)$ { access_log off; root '此处写网站路径'; expires 30d; break; } 参考文档: nginx.........
    ▪nginx多站点配置实例      一、环境如下: IP地址: 59.111.33.22 域名1 example1.com 放在 /www/example1 域名2 example2.com 放在 /www/example2 二、基本思路和步骤如下: 把2个站点 example1.com, example2.com 放到 nginx 可以访问的目录 /www/ .........
    ▪学习Nginx反向代理实现简单负载均衡(图文)      Nginx proxy作为Nginx的重要功能,使用nginx proxy基本可以实现一个完整的7层负载均衡。 其特色如下: 1、功能强大,性能卓越,运行稳定。 2、配置简单灵活。 3、能够自动剔除工作不正常的后.........

[1]nginx js或图片不显示的解决方法
    来源: 互联网  发布时间: 2013-12-24

解决方法如下:
在expires xxxd后加上“break;”。

修改nginx.conf文件,加入:

location ~* ^.+\.(jpg|jpeg|gif|png|bmp)$ {
   access_log off;
   root '此处写网站路径'; 
   expires 30d;
   break;
}

参考文档:
nginx发布静态文件后图片显示不全
nginx web网站图片显示过慢 超大附件不完全下载的解决方法

附:nginx配置css、js、图片本地缓存过期时间

location ~* .(jpg|gif|png|js|css)$ {
    if (-f $request_filename) {
        expires max;
        break;
    }
}

    
[2]nginx多站点配置实例
    来源: 互联网  发布时间: 2013-12-24

一、环境如下:
IP地址: 59.111.33.22
域名1 example1.com 放在 /www/example1
域名2 example2.com 放在 /www/example2

二、基本思路和步骤如下:
把2个站点 example1.com, example2.com 放到 nginx 可以访问的目录 /www/
给每个站点分别创建一个 nginx 配置文件 example1.com.conf,example2.com.conf, 并把配置文件放到 /etc/nginx/vhosts/
然后在 /etc/nginx.conf 里面加一句 include 把步骤2创建的配置文件全部包含进来(用 * 号)
重启 nginx

在开始具体的配置之前,有兴趣的朋友,可以参考下之前为大家介绍过的一篇文章:nginx配置多站点的实例代码 。

三、具体配置过程:

1、在 /etc/nginx 下创建 vhosts 目录

mkdir /etc/nginx/vhosts

2、在 /etc/nginx/vhosts/ 里创建文件 example1.com.conf,内容如下:  

server {
        listen  80;
        server_name  example1.com www. example1.com;

        access_log  /www/access_ example1.log  main;

        location / {
            root   /www/example1.com;
            index  index.php index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }

       # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        location ~ \.php$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /www/example1.com/$fastcgi_script_name;
            include        fastcgi_params;
        }

        location ~ /\.ht {
            deny  all;
        }
}

3、在 /etc/nginx/vhosts/ 里创建文件 example2.com.conf,内容如下:  

server {
        listen  80;
        server_name  example2.com www. example2.com;

        access_log  /www/access_ example1.log  main;

        location / {
            root   /www/example2.com;
            index  index.php index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }

       # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        location ~ \.php$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /www/example2.com/$fastcgi_script_name;
            include        fastcgi_params;
        }

        location ~ /\.ht {
            deny  all;
        }
}

4、打开 /etc/nginix.conf 文件,在相应位置include进来以上的二个文件。  

user  nginx;
worker_processes  1;

# main server error log
error_log /var/log/nginx/error.log ;
pid /var/run/nginx.pid;

events {
 worker_connections  1024;
}

# main server config
# by http://www.
http {
 include       mime.types;
 default_type  application/octet-stream;
 log_format  main  '$remote_addr - $remote_user [$time_local] $request '
                      '"$status" $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

 sendfile        on;
 #tcp_nopush     on;
     #keepalive_timeout  0;
 keepalive_timeout  65;
 gzip  on;

 server {
         listen         80;
         server_name     _;
         access_log      /var/log/nginx/access.log main;
         server_name_in_redirect  off;
         location / {
              root  /usr/share/nginx/html;
              index index.html;
         }
 }

# 包含所有的虚拟主机的配置文件
include /usr/local/etc/nginx/vhosts/*;
}

5、重启 Nginx  

/etc/init.d/nginx restart

搞定,开始测试吧。


    
[3]学习Nginx反向代理实现简单负载均衡(图文)
    来源: 互联网  发布时间: 2013-12-24

Nginx proxy作为Nginx的重要功能,使用nginx proxy基本可以实现一个完整的7层负载均衡。
其特色如下:
1、功能强大,性能卓越,运行稳定。
2、配置简单灵活。
3、能够自动剔除工作不正常的后端服务器。
4、上传文件使用异步模式。
5、支持多种分配策略,可以分配权重,分配方式灵活

项目拓扑结构:

配置环境:
三台CentOS6.2X86 
一台做Nginx Proxy
二台Apache做页面测试服务器

配置步骤:
安装前要先解决包的依赖问题:pcre-devel openssl zlib-devel

一、安装nginx服务器
1、后台的web服务使用Apache,有关apache 配置的文章这里不多说,本文重点在配置nginx反向代理。
2、安装Nginx服务


3、修改nginx主配置文件,主配置文件路径:/usr/local/site/nginx/conf/nginx.conf,最好配置文件作下备份;
 

代码如下:

user  www;                                 指定nginx的运行用户,
worker_processes  1;              指定线程,默认情况下Nginx是单线程运行,
#error_log  logs/error.log;    日志模块
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
#pid    logs/nginx.pid;   //inx主进程ID
events {
 use epoll;        //inx的高效模式;
 worker_connections  65535;                   //文件最大的连接数;
}

http {
include       mime.types;                     //置文件模块;
default_type  application/octet-stream;             //核心配置文件模块;
sendfile        on;                      //开启高效传输模式;
tcp_nopush     on;                       //防止网络端口阻塞;  
#keepalive_timeout  0;
keepalive_timeout  65; 
#gzip  on;                  //开启压缩模块,需要注意的是在配置文件中开启之后是不生效的,还需要加载gzip模块
     
server {
listen       80;               //监听的80端口
server_name  proxy.rsyslog.net;        //指定代理服务器的域名
    
location / {
  root   html;                 //配置文件所在的目录,这里是相对路径
  index  index.html index.htm;    //页面文件的类型;
}
error_page  404              /404.html;         //相关错误提示页面
error_page   500 502 503 504  /50x.html;
location = /50x.html {
root   html;
 }
}
}
 

重启服务,测试是否正常,links proxy.rsyslog.net 域名需要在dns服务器上配置正确。

Nginx支持不间断运行:
 

代码如下:
kill -HUP `cat /usr/local/site/nginx/logs/nginx.pid`

查看Nginx服务状态,确定正常之后我们来配置Nginx Proxy,查看Nginx端口

二、配置Nginx 反向代理服务器,反向代理服务器的配置如下;需要修改两个两个地方,在HTTP字段里面修改和Server字段中修改,在下图中只把需要添加的文件列出来即可。

如下是HTTP负载均衡模块upstream 指定设置一群服务器,服务器可以指定不同的权重,默认为1。Nginx支持5种方式的查询,
1、轮询 Nginx默认的查询方式
2、Weight 指定分配的轮询方式,根据后端服务器的性能来做权重,在此案例中我们使用这种方式来轮询的
3、Ip_hash 每个请求按照ip的hash结果分配,这样每个IP地址就可以固定的访问后端的一台服务器,解决了session的问题
4、Fair 第三方模块,这个原理是按照响应时间的优先来分配的,
5、url_hash    按照url的hash结果来分配请求,使每个url定向到同一个后端的服务器;
 

代码如下:
upstream cluster {
  server 192.168.100.238:80 weight=8 max_fails=2 fail_timeout=30s;
  server 192.168.100.248:80 weight=8 max_fails=2 fail_timeout=30s;
}  
    
server {
 listen       80;
server_name  localhost;
      
location / {
   root   html;
   index  index.html index.htm;
   proxy_pass http://cluster/;  //指定需要代理的URL,
   proxy_redirect off;         //如果需要从后端打开location和Refresh字段,可以开启。
   proxy_set_header X-Real-IP $remote_addr;  //允许将发送到后端的服务器请求重新定义或者增加一个字段,这个可以是变量也是文本组合。
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  //联系下面PS中所写,在后端web中就算加上$http_x_Forwarded_for这条,也得不到用户的IP,所以在nginx反向代理添加Header头信息 X-Forwarded-For在配合后端服务器日志文件的$http_x_Forwarded_for这条就可以获得用户的IP地址了。
   proxy_set_header Host $host; //首先说明 proxy_set_header 指令在向反向代理的后端Web服务器发起请求时添加指定的 Header头信息,后端web服务器有多个基于域名的虚拟主机时,通过头信息Host,用于指定请求的域名,这样后端web才能识别反向代理请求哪个虚拟主机处理。
   proxy_next_upstream error timeout invalid_header http_500 http_502 http_503
   http_504 http_404; 服务器头部超时相应的各种状态
 } 
}
}
 

配置完成,平滑重启Nginx服务:
 

代码如下:
kill -HUP `cat /usr/local/site/nginx/logs/nginx.pid`

三、测试,刷新测试能正常进行负载,可以根据自己的环境来对nginx proxy的设置轮询模式;

附:

Nginx反向代理的原理优点:

反向代理可以简单的理解为:代理服务器来接收internet上的服务器请求,然后将请求转发给内部的服务器上,然后将结果返回给internet上请求的客户端,所以代理服务器对外表现出来的只是一台服务器。反向代理服务器也称为Web服务器加速,针对web服务器提供加速功能。他作为代理服务器,并不针对浏览器用户,而是针对一台或者多台特定的web服务器。可以缓存web的页面,降低web服务器的访问量,从而来降低web服务器的负载,实施反向代理,只要将反向代理设备放置在一台或多台Web服务器前端即可。

当互联网用户访问某个WEB服务器时,通过DNS服务器解析后的IP地址是代理服务器的IP地址,而非原始Web服务器的IP地址,这时代理服务器设备充当Web服务器,浏览器可以与它连接,无需再直接与Web服务器相连。因此,大量Web服务工作量被转载到反向代理服务上。不但能够很大程度上减轻web服务器的负担,提高访问速度,而且能够防止外部网主机直接和web服务器直接通信带来的安全隐患。

您可能感兴趣的文章:
Nginx负载均衡与反向代理的例子(图文)
Nginx Proxy 代理配置图片缓存的实例参考
nginx正向代理配置简单一例
nginx反向代理配置简单示例
nginx缓存html静态文件 解析php及反向代理IIS的配置
nginx1.0.0配置ngx_cache_purge实现高效反向代理的方法
nginx中配置proxy正向代理
nginx创建反向代理和虚拟主机的例子
nginx的反向代理配置与优化
nginx反向代理与varnish缓存配置
nginx反向代理与负载均衡
Nginx 反向代理的小例子
nginx反向代理与缓存详解
nginx反向代理配置一例
Nginx反向代理Nginx
nginx反向代理配置和优化
Nginx Proxy代理和图片缓存配置
nginx配置反向代理的简单示例


    
最新技术文章:
▪linux系统中的列出敏感用户的脚本代码
▪a10 config backup for aXAPI
▪一键备份gitolite服务器的Shell脚本
▪nagios 分发文件实现代码
▪阿里云云服务器Linux系统更新yum源Shell脚本
▪一个监控LINUX目录和文件变化的Shell脚本分享
▪Linux下实现SSH免密码登录和实现秘钥的管理、...
▪Shell 函数参数 iis7站长之家
▪3个备份系统文件并邮件发送的Shell脚本分享
▪CentOS 6.3下给PHP添加mssql扩展模块教程
▪监控网站是否可以正常打开的Shell脚本分享
▪shell脚本编程之if语句学习笔记
▪shell脚本编程之循环语句学习笔记
▪shell脚本编程之case语句学习笔记
▪Shell脚本实现的阳历转农历代码分享
▪Shell脚本实现复制文件到多台服务器的代码分...
▪Shell脚本实现批量下载网络图片代码分享
▪Shell脚本实现检测文件是否被修改过代码分享
▪Shell脚本数组用法小结
▪Shell脚本批量重命名文件后缀的3种实现
▪C语言实现的ls命令源码分享
▪Linux下查找后门程序 CentOS 查后门程序的shell脚...
▪Shell 函数参数
▪linux shell 自定义函数方法(定义、返回值、变...
▪Shell实现判断进程是否存在并重新启动脚本分...
▪Shell脚本break和continue命令简明教程
▪Shell脚本函数定义和函数参数
▪让代码整洁、过程清晰的BASH Shell编程技巧
▪shell常用重定向实例讲解
▪awk中RS、ORS、FS、OFS的区别和联系小结
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3