nginx配置文件javascript
nginx配置文件,由4个部分组成css
一、mian(全局设置)该部分设置影响全局,在http外的内容即全局定义,设置会向下继承,http会继承main设置,并向下继承html
二、server(主机设置) server部分指令用于指定主机和端口,server会继承http的设置,并向下继承java
三、location (url匹配特定位置的设置)匹配网页位置,local会继承server的设置nginx
四、upstream(负载均衡器设置,负载后端服务器),upstream不会继承任何设置,也不会被继承后端
user nginx; worker_processes 1; events { worker_connections 2048; } #########################以上全局配置######################################### #定义http相关 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; client_max_body_size 5000m; keepalive_timeout 65; gzip on; gzip_http_version 1.1; gzip_comp_level 2; gzip_min_length 1k; gzip_vary on; gzip_types text/plain text/javascript application/x-javascript text/css text/xml application/xml applicatin/xml+rss; #upstream模块,不会向下继承,也不会继承其余配置 upstream backend { server 47.102.12.x:8080 weight=1; server 47.102.11.x:8090 weight=1; } #server中为主机的配置 server { charset utf-8; proxy_buffering on; proxy_buffer_size 8k; proxy_buffers 8 32k; #location匹配URL location / { proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header Connection ""; proxy_set_header X-Real-IP $remote_addr; error_page 500 501 502 503 504 404 400 /error.html; } location = /error.html { root /opt/error/; } location /html { root /opt/; index test.html; } location /ali/ { alias /opt/ali/; index ali.html; } } #虚拟主机 include /usr/local/nginx/vhost/*.conf; }
location中配置URL:缓存
一、root 访问时,root定义了/html的上层访问路径,实际路径/opt/html/test.html,只需定义到/opt/便可。 location /html { root /opt/; index test.html; }
二、alias 访问时,alias定义了全路径,实际路径为/opt/ali/ali.html,须要定义完整路径。 location /ali/ { alias /opt/ali/; index ali.html; }
nginx中的正则匹配bash
~ 区分大小写匹配服务器
~* 不区分大小写匹配app
!~ 区分大小写匹配失败
!~* 不区分大小写匹配失败
^ 以什么开头匹配
$ 以什么结尾匹配
* 任意字符
匹配到或者/*.ddd 或者/*.666时,从新引导一个http://ip/ok/ok.html的页面给予访问 location ~ .*\.(abc|ddd|666)$ { rewrite ^ http://$host/ok/ permanent; } location /ok{ root /opt/; index ok.html; }
匹配到http://ip/123或者/789 或者/444 重定义一个返回码500,能够自定义为404,503等 location ~ .*\/(123|789|444) { return 500; }
当匹配错误的时候返回的错误页面,error_page首先指定错误页面的名字,location = /error.html 精确匹配了url路径 location / { proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header Connection ""; proxy_set_header X-Real-IP $remote_addr; error_page 500 501 502 503 504 404 400 /error.html; } location = /error.html { root /opt/error/; }
匹配到 或者 /*.png 或者/*.css 或者/*.js 缓存7天 location ~ .*\.(jpg|png|css|js) { expires 7d; }