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; }