nginx配置字段详解

来源:互联网 发布:python 爬虫 股票数据 编辑:程序博客网 时间:2024/06/05 23:05

#表示注释
########### 每个指令必须有分号结束。#################

1、全局块:配置影响nginx全局的指令。一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等。

2、events块:配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。

3、http块:可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。如文件引入,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等。

4、server块:配置虚拟主机的相关参数,一个http中可以有多个server。

5、location块:配置请求的路由,以及各种页面的处理情况。

nginx文件结构...              #全局块events {         #events块   ...}http      #http块{    ...   #http全局块    server        #server块    {         ...       #server全局块        location [PATTERN]   #location块        {            ...        }        location [PATTERN]         {            ...        }    }    server    {      ...    }    ...     #http全局块}

# user administrator administrators; #配置用户或者组,默认为nobody nobody。
# worker_processes 2; #允许生成的进程数,默认为1
# pid /nginx/pid/nginx.pid; #指定nginx进程运行文件存放地址
# error_log log/error.log debug; #制定日志路径,级别。这个设置可以放入全局块,http块,server块,级别以此为:debug|info|notice|warn|error|crit|alert|emerg

#设定虚拟主机配置 server { #侦听80端口                listen          9004;#定义使用 127.0.0.1.访问,如果是域名,则使用该域名访问                server_name     127.0.0.1;#定义服务器的默认网站根目录位置                root           /home/deploy/data/app/WebProjects/sevendData/;# 设定本虚拟主机的访问日志# access_log  logs/nginx.access.log  main;# 默认请求#  location / {#           #定义首页索引文件的名称#         index index.php index.html index.htm;   #       } # 定义错误提示页面#  error_page   500 502 503 504 /50x.html;#     location = /50x.html {#    }#静态文件,nginx自己处理#  location ~ ^/(images|javascript|js|css|flash|media|static)/ {#       #过期30天,静态文件不怎么更新,过期可以设大一点,#        #如果频繁更新,则可以设置得小一点。#        expires 30d;#     }location  ~*^.+$ {       #请求的url过滤,正则匹配,~为区分大小写,~*为不区分大小写。# expires起到控制页面缓存的作用,合理的配置expires可以减少很多服务器的请求# 要配置expires,可以在http段中或者server段中或者location段中加入       location ~ \.(gif|jpg|jpeg|png|bmp|ico)$ {           root /var/www/img/;           expires 30d;       }# 控制图片等过期时间为30天,当然这个时间可以设置的更长。具体视情况而定比如#本地动静分离反向代理配置  #所有jsp的页面均交由tomcat或resin处理  location ~ .(jsp|jspx|do)?$ {  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://127.0.0.1:8080;  }  #所有静态文件由nginx直接读取不经过tomcat或resin  location ~ .*.(htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)$  { expires 15d; }  location ~ .*.(js|css)?$  { expires 1h; }}}                index  index.html index.htm;在这个例子中文档根(doucument root)位于html/目录。根据nginx的安装目录/usr/local/nginx,这个location的完整路径是/usr/local/nginx/html。假设一个请求访问位于/blog/includes/styles.css文件同时没有别的location块匹配,那么nginx会用位于文件系统的/usr/local/nginx/html/blog/includes/styles.css响应。当然你也可以用绝对路径设置root指令。index指令会告诉nginx使用哪个资源如果请求中没有文件名。因此,如果请求http://.ducklington.org/将会补全资源位置为/usr/local/nginx/html/index.html。如果index配置了多个文件,nginx会按顺序处理直到找到第一个存在的补全资源。如果index.html在相关目录中没有,那么将使用index.htm。如果两个都不存在,会返回404错误。location = /login {     #规则B  }  访问 http://localhost/login 将匹配规则B          location /data/api {                proxy_pass  http://127.0.0.1:9003;   #请求转向 http://127.0.0.1:9003; 定义的服务器列表                proxy_set_header   Host           $host;  proxy_set_header用来重定义发往后端服务器的请求头。一般而言,会用$host代替$http_host变量,从而避免http请求中丢失Host头部的情况下Host不被重写的失误。                proxy_set_header   X-Real-IP        $remote_addr;  $remote_addr输出结果为真实客户端IP什么是remote_add?remote_addr代表客户端的IP,但它的值不是由客户端提供的,而是服务端根据客户端的ip指定的,当你的浏览器访问某个网站时,假设中间没有任何代理,那么网站的web服务器(Nginx,Apache等)就会把remote_addr设为你的机器IP,如果你用了某个代理,那么你的浏览器会先访问这个代理,然后再由这个代理转发到网站,这样web服务器就会把remote_addr设为这台代理机器的IP什么是x_forwarded_for?正如上面所述,当你使用了代理时,web服务器就不知道你的真实IP了,为了避免这个情况,代理服务器通常会增加一个叫做x_forwarded_for的头信息,把连接它的客户端IP(即你的上网机器IP)加到这个头信息里,这样就能保证网站的web服务器能获取到真实IP $http_host$remote_addr都是nginx的导出变量                proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;   #后端的Web服务器可以通过X-Forwarded-For获取用户真实IP,配合这个把真实的ip 发送给 转发的web服务器,要不 的话 接收请求的 收到的请求ip都是 nginx这台的#以下是一些反向代理的配置,可选。  proxy_set_header Host $host;  client_max_body_size 10m; #允许客户端请求的最大单文件字节数  client_body_buffer_size 128k; #缓冲区代理缓冲用户端请求的最大字节数,  proxy_connect_timeout 90; #nginx跟后端服务器连接超时时间(代理连接超时)  proxy_send_timeout 90; #后端服务器数据回传时间(代理发送超时)  proxy_read_timeout 90; #连接成功后,后端服务器响应时间(代理接收超时)  proxy_buffer_size 4k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小  proxy_buffers 4 32k; #proxy_buffers缓冲区,网页平均在32k以下的设置  proxy_busy_buffers_size 64k; #高负荷下缓冲大小(proxy_buffers*2)  proxy_temp_file_write_size 64k;  #设定缓存文件夹大小,大于这个值,将从upstream服务器传           deny 127.0.0.1;  #拒绝的ip           allow 172.18.5.54; #允许的ip            }       }*注意:1.$remote_addr$http_x_forwarded_for 用以记录客户端的ip地址;2.$remote_user :用来记录客户端用户名称;3.$time_local : 用来记录访问时间与时区;4.$request : 用来记录请求的url与http协议;5.$status : 用来记录请求状态;成功是2006.$body_bytes_sent :记录发送给客户端文件主体内容大小;7.$http_referer :用来记录从那个页面链接访问过来的; 8.$http_user_agent :记录客户端浏览器的相关信息;
       server {                listen          80;                server_name     sevendpolicy.audit.zeus.com;                root           /home/deploy/data/app/sevendPolicyAudit/dist/;                index  index.html index.htm;                location /api {                        proxy_pass http://localhost:30018;                        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 /graph-platform {                        proxy_pass      http://112.74.195.151;                        proxy_set_header   Host             $host;                        proxy_set_header   X-Real-IP        $remote_addr;                        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;                }       }       server {                listen          80;                server_name     sevendpolicy.audit.zeus.com;                root           /home/deploy/data/app/sevendPolicyAudit/dist/;                index  index.html index.htm;                location /api {                        proxy_pass http://localhost:30018;                        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 /graph-platform {                        proxy_pass      http://112.74.195.151;                        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_buffering off;
add_header ‘Access-Control-Allow-Origin’ ‘*’;
add_header ‘Access-Control-Allow-Headers’ ‘Content-Type,Accept’;

阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 政府非法征地怎么办 法院执行难怎么办 国家破产了怎么办 倒数第一怎么办 报送金融数据库怎么办 icloud账户忘记怎么办 忘记icloud密码怎么办 网上怎么办出口退税 美国签证黑名单怎么办 烟草专卖许可证怎么办 进出口顺差怎么办 出口退税超期怎么办 弓箭不空放怎么办 《被迫捡肥皂怎么办》 泰国旅游下雨怎么办 泰国普吉岛下雨怎么办 不会睡觉了怎么办 泰国医疗签证怎么办 收到假钞怎么办 输钱了怎么办 老输钱怎么办 赌博输钱了怎么办 打牌输钱了怎么办 快开彩输钱了怎么办 工作思路不清晰怎么办 思路不清晰怎么办 荷兰过境签证怎么办 夏威夷签证怎么办 儿童尿多怎么办 孩子尿多怎么办 笔记本电脑分屏怎么办 墙壁有污渍怎么办 去越南旅游怎么办签证 引擎过热怎么办 wifi忘记密码怎么办 cf虚拟内存不足怎么办 玩cf内存不足怎么办 codol延迟高怎么办 tmp文件删不掉怎么办 表格打不开怎么办 小行星撞击地球怎么办