farmer111 发表于 2018-11-15 07:52:21

nginx配置详解2-guichina的学习笔记

  server
  #配置虚拟机
  {
  listen 80;
  #配置监听端口
  server_name image.***.com;
  #配置访问域名
  location ~* \.(mp3|exe)$ {
  #对以“mp3或exe”结尾的地址进行负载均衡
  proxy_pass http://img_relay$request_uri;
  #设置被代理服务器的端口或套接字,以及URL
  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 /face {
  if ($http_user_agent ~* "xnp") {
  rewrite ^(.*)$ http://211.151.188.190:8080/face.jpg redirect;
  }
  proxy_pass http://img_relay$request_uri;
  proxy_set_header Host $host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  error_page 404 502 = @fetch;
  }
  location @fetch {
  access_log /data/logs/face.log log404;
  #设定本服务器的访问日志
  rewrite ^(.*)$ http://211.151.188.190:8080/face.jpg redirect;
  }
  location /image {
  if ($http_user_agent ~* "xnp") {
  rewrite ^(.*)$ http://211.151.188.190:8080/face.jpg redirect;
  }
  proxy_pass http://img_relay$request_uri;
  proxy_set_header Host $host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  error_page 404 502 = @fetch;
  }
  location @fetch {
  access_log /data/logs/image.log log404;
  rewrite ^(.*)$ http://211.151.188.190:8080/face.jpg redirect;
  }
  }
  server
  {
  listen 80;
  server_name *.***.com *.***.cn;
  location ~* \.(mp3|exe)$ {
  proxy_pass http://img_relay$request_uri;
  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 / {
  if ($http_user_agent ~* "xnp") {
  rewrite ^(.*)$ http://i1.***img.com/help/noimg.gif redirect;
  }
  proxy_pass http://img_relay$request_uri;
  proxy_set_header Host $host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  #error_page 404 http://i1.***img.com/help/noimg.gif;
  error_page 404 502 = @fetch;
  }
  location @fetch {
  access_log /data/logs/baijiaqi.log log404;
  rewrite ^(.*)$ http://i1.***img.com/help/noimg.gif redirect;
  }
  #access_log off;
  }
  server
  {
  listen 80;
  server_name *.***img.com;
  location ~* \.(mp3|exe)$ {
  proxy_pass http://img_relay$request_uri;
  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 / {
  if ($http_user_agent ~* "xnp") {
  rewrite ^(.*)$ http://i1.***img.com/help/noimg.gif;
  }
  proxy_pass http://img_relay$request_uri;
  proxy_set_header Host $host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  #error_page 404 http://i1.***img.com/help/noimg.gif;
  error_page 404 = @fetch;
  }
  #access_log off;
  location @fetch {
  access_log /data/logs/baijiaqi.log log404;
  rewrite ^(.*)$ http://i1.***img.com/help/noimg.gif redirect;
  }
  }
  server
  {
  listen 8080;
  server_name ngx-ha.***img.com;
  location / {
  stub_status on;
  access_log off;
  }
  }
  server {
  listen 80;
  server_name imgsrc1.***.net;
  root html;
  }
  server {
  listen 80;
  server_name ***.com w.***.com;
  # access_log /usr/local/nginx/logs/access_log main;
  location / {
  rewrite ^(.*)$ http://www.***.com/ ;
  }
  }
  server {
  listen 80;
  server_name *******.com w.*******.com;
  # access_log /usr/local/nginx/logs/access_log main;
  location / {
  rewrite ^(.*)$ http://www.*******.com/;
  }
  }
  server {
  listen 80;
  server_name ******.com;
  # access_log /usr/local/nginx/logs/access_log main;
  location / {
  rewrite ^(.*)$ http://www.******.com/;
  }
  }
  location /NginxStatus {
  stub_status on;
  access_log on;
  auth_basic "NginxStatus";
  auth_basic_user_file conf/htpasswd;
  }
  #设定查看Nginx状态的地址
  location ~ /\.ht {
  deny all;
  }
  #禁止访问.htxxx文件
  }
  注释:变量
  Ngx_http_core_module模块支持内置变量,他们的名字和apache的内置变量是一致的。
  首先是说明客户请求title中的行,例如$http_user_agent,$http_cookie等等。
  此外还有其它的一些变量
  $args此变量与请求行中的参数相等
  $content_length等于请求行的“Content_Length”的值。
  $content_type等同与请求头部的”Content_Type”的值
  $document_root等同于当前请求的root指令指定的值
  $document_uri与$uri一样
  $host与请求头部中“Host”行指定的值或是request到达的server的名字(没有Host行)一样
  $limit_rate允许限制的连接速率
  $request_method等同于request的method,通常是“GET”或“POST”
  $remote_addr客户端ip
  $remote_port客户端port
  $remote_user等同于用户名,由ngx_http_auth_basic_module认证
  $request_filename当前请求的文件的路径名,由root或alias和URI request组合而成
  $request_body_file
  $request_uri含有参数的完整的初始URI
  $query_string与$args一样
  $sheeme http模式(http,https)尽在要求是评估例如
  Rewrite ^(.+)$ $sheme://example.com$; Redirect;
  $server_protocol等同于request的协议,使用“HTTP/或“HTTP/
  $server_addr request到达的server的ip,一般获得此变量的值的目的是进行系统调用。为了避免系统调用,有必要在listen指令中指明ip,并使用bind参数。
  $server_name请求到达的服务器名
  $server_port请求到达的服务器的端口号
  $uri等同于当前request中的URI,可不同于初始值,例如内部重定向时或使用index

页: [1]
查看完整版本: nginx配置详解2-guichina的学习笔记