当前位置:  操作系统/服务器>linux
本页文章导读:
    ▪nginx配置反向代理的简单示例      Nginx配置反向代理很简单,只需在nginx.conf配置文件的server区块启用proxy_pass相关参数配置。 这里给出一段简单的配置代码: 代码如下: server {         listen       80;         server_na.........
    ▪Nginx虚拟主机配置范例代码      两个虚拟主机,纯静态: 代码如下: http {   index index.html;     server {     server_name www.domain1.com;     access_log logs/domain1.access.log main;       root /var/www/domain1.com/htdocs;   }     server { .........
    ▪如何让nginx始终返回gzip后的内容      gzip压缩是否启用,除了服务器支持外,客户端也要支持。 当客户端发送Accept-Encoding:gzip这个request header,服务器即认为其能接受gzip压缩,就响应一个Content-Encoding:gzip,并发送压缩内容; 假.........

[1]nginx配置反向代理的简单示例
    来源: 互联网  发布时间: 2013-12-24

Nginx配置反向代理很简单,只需在nginx.conf配置文件的server区块启用proxy_pass相关参数配置。

这里给出一段简单的配置代码:
代码如下:
server {
        listen       80;
        server_name  www.
 
location / {
      proxy_pass             http://1.2.3.4; //后端ip地址
      proxy_redirect         off;  //关闭后端返回的header修改
      proxy_set_header       Host      $host;  //修改发送到后端的header的host
      proxy_set_header       X-Real-IP  $remote_addr; //设置真实ip
      proxy_set_header       X-Forwarded-For $proxy_add_x_forwarded_for;
      }
}

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


    
[2]Nginx虚拟主机配置范例代码
    来源: 互联网  发布时间: 2013-12-24

两个虚拟主机,纯静态:

代码如下:
http {
  index index.html;
 
  server {
    server_name www.domain1.com;
    access_log logs/domain1.access.log main;
 
    root /var/www/domain1.com/htdocs;
  }
 
  server {
    server_name www.domain2.com;
    access_log  logs/domain2.access.log main;
 
    root /var/www/domain2.com/htdocs;
  } }

独立虚拟主机:
 

代码如下:
http {
  index index.html;
 
  server {
    listen 80 default;
    server_name _;
    access_log logs/default.access.log main;
 
    server_name_in_redirect off;
 
    root  /var/www/default/htdocs;
  } }

指定所有的二级域名:
 

代码如下:
server {
  # Replace this port with the right one for your requirements
  listen 80 [default|default_server];  #could also be 1.2.3.4:80
 
  # Multiple hostnames separated by spaces.  Replace these as well.
  server_name star.yourdomain.com *.yourdomain.com; # Alternately: _
 
  root /PATH/TO/WEBROOT/$host;
 
  error_page 404 errors/404.html;
  access_log logs/star.yourdomain.com.access.log;
 
  index index.php index.html index.htm;
 
  # serve static files directly
  location ~* .(jpg|jpeg|gif|css|png|js|ico|html)$ {
    access_log off;
    expires max;
  }
 
  location ~ .php$ {
    include fastcgi_params;
    fastcgi_intercept_errors on;
    # By all means use a different server for the fcgi processes if you need to
    fastcgi_pass   127.0.0.1:YOURFCGIPORTHERE;
  }
 
  location ~ /.ht {
    deny  all;
  } }

    
[3]如何让nginx始终返回gzip后的内容
    来源: 互联网  发布时间: 2013-12-24

gzip压缩是否启用,除了服务器支持外,客户端也要支持。
当客户端发送Accept-Encoding:gzip这个request header,服务器即认为其能接受gzip压缩,就响应一个Content-Encoding:gzip,并发送压缩内容;
假如客户端没有发送 Accept-Encoding,那么服务器就把源代码原样输出。

能不能让客户端无论有没有发送Accept-Encoding,服务器都会发送压缩内容呢?
这样做的好处:
1、进一步节省带宽。
2、防止水平一般的爬虫抓页面偷数据。

经测试,此种做法并不会影响普通用户,因为他们都是用先进的浏览器上网的;
另外,也不会影响主流的搜索引擎,收录仍然会正常。

要做到这点,需要有两个nginx,配置两个虚拟主机也可以,并不用启动两个nginx主进程。

前端nginx:
gzip压缩不在前端nginx进行,前端主要是用来强制修改request header,配置代码:
proxy_set_header Accept-Encoding 'gzip';
这样,后台的nginx无论如何都将接收到Accept- Encoding:gzip,而不管客户端有没有发。

配置代码:
代码如下:
upstream www.backend.{
   server 127.0.0.1:80;
}
server {
 server_name www.;
 listen 80;
 location / {
   proxy_pass http://www.backend.;
  include proxy.conf;
   proxy_set_header Accept-Encoding 'gzip';
 } }

注意proxy_pass到的upstream是www.backend.,这是在一台机器上配置两个虚拟主机所必需的,否则就像死循环一样了。
如果想用www.,可以将前端的listen改成外网ip,后端使用127.0.0.1。

另外一个要注意proxy.conf里最好没有写过proxy_set_header Accept-Encoding,我的proxy.conf默认有将Accept-Encoding设为空的,这会造成配置重复。
但proxy_set_header不会冲突,可以按配置先后顺序生效,我一时忘了是前生效还是后生效,动手测一下便知。

后端nginx:

后端nginx负责压缩,这里要注意gzip的版本,因为nginx是用http1.0方式作代理的,所以gzip的版本就不能是默认的1.1版,需要修改为1.0。

配置代码:
代码如下:
server {
 server_name www.backend.;
 listen 80;
 location / {
   root /html/;
   gzip on;
   gzip_http_version 1.0;
  }
}

测试:
curl -I http://www.
看到返回内容中 Content-Encoding:gzip 即说明配置生效。

不加-I参数试试:curl http://www.
打印出一堆乱码。


    
最新技术文章:
▪linux系统中的列出敏感用户的脚本代码
▪a10 config backup for aXAPI
▪一键备份gitolite服务器的Shell脚本
▪nagios 分发文件实现代码
▪阿里云云服务器Linux系统更新yum源Shell脚本
▪一个监控LINUX目录和文件变化的Shell脚本分享
▪Linux下实现SSH免密码登录和实现秘钥的管理、...
▪Shell正则表达式之grep、sed、awk实操笔记
▪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