httpd:MPM prefork,worker,event prefork: 主进程生成多个子进程,每个子进程处理一个请求 worker: 主进程生成多个子进程,每个子进程生成多个线程,每个线程响应一个请求 event: 主进程生成多个线程,每个线程响应多个请求
server_name NAME [...]; 后面可以跟多个主机名,名称还可以使用正则表达是(~)或通配符
Nginx server_name匹配顺序(匹配优先级)
1、先做精确匹配检查:
2、左侧通配符匹配检查:*.liheng1815.xyz
3、右侧通配符匹配检查:mail.*
4、正则表达式匹配检查:如~^.*\.liheng1815\.xyz$
5、default_server 如果没有设置default server,则由上往下匹配第一个server
server{
server_name www.liheng1815.xyz;
}
server{
server_name *.liheng1815.xyz;
}
server {
server_name www.*;
}
location [= | ~ | ~* | ^~] uri {...} 功能:允许根据用户请求的URI来匹配定义的各location。匹配到时,此请求将被相应的location匹配块中的配置所处理,例如做访问控制等功能
=:精确匹配检查
~:正则表达式模式匹配检查,区分字符大小写
~*:正则表达式模式匹配检查,不区分字符大小写
^~:URL的前半部分匹配,不支持正则表达式
匹配有优先级:
精确匹配(=)、^~、~、~*、不带任何符号的location
server {
listen 80;
server_name www.liheng1815.xyz;
location / {
root "/vhosts/web1";
}
location /images {
root "/vhosts/images";
}
location ~* \.php$ {
...;
...;
}
}
rewrite regex replacement flag; 例如:rewrite ^/images/(.*.jpg)$ /imgs/$1 break; http://www.liheng1815.xyz/images/a/b/c/1.jpg -->/imgs/a/b/c/1.jpg
flag: last:此rewrite规则重写完成后,就不再被后面的rewrite规则进行处理,而是有User Agent重新对重写的URL再一次发起请求,并从头执行类似的过程。 break:一旦此rewrite规则重写完成后,直接终止重写。 redirect:以302响应码(临时重定向)返回新的URL。 permanent:以302响应码(永久重定向)返回新的URL。
开启gzip压缩: gzip on; gzip_min_length 1; gzip_comp_level 2; gzip_type text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
设置允许列出目录结构(作为一个下载站点) autoindex on;
限制网站访问速度 set $limit_rate 1K;
反向代理配置
http段添加如下一行:
proxy_cache_path /tmp/nginxcache levels=1:2 keys_zone=my_cache:10M max_size=10g inactive=60m use_temp_path=off; #配置反向代理缓存
定义上游服务器
upstream website {
server 127.0.0.1:8080;
}
server {
server_name www.liheng1815.xyz;
listen 80;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxt_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#配置缓存
proxy_cache my_cache;
proxy_cache_key $host$uri$is_args$args;
proxy_cache_valid 200 304 302 1d;
#反向代理
proxy_pass http://website
}
}
server {
server_name loaclhost;
listen 127.0.0.1:8080;
location / {
alias www/;
index index.html index.php index.htm;
}
}
防盗链配置 Syntax: valid_referers none | blocked | server_names | string ...; 可以配置在server与location段 通过valid_referers指令和$invalid_referer变量,就可以通过rewrite功能来实现防盗链,有以下两种方法实现: 1、根据请求资源的资源类型 2、根据请求目录
一、根据请求资源类型实现防盗链配置实例如下:
...
server {
...
listen 80;
server_name www.liheng1815.xyz;
root /var/html;
location ~* .*\.(gif|jpg|png|flv|swf|rar|zip) {
...
valid_referers none blocked server_names *.liheng1815.xyz;
if ($invalid_referer) {
rewrite ^/ http://www.test.com/1.jgp;
#return 403;
}
}
}
server {
listen 80;
server_name www.test.com;
root /var/web;
}
...
二、根据请求目录实现防盗链配置实例如下:
...
server {
...
listen 80;
server_name www.liheng1815.xyz;
location /images/ {
...
root /server/images/;
valid_referers none blocked server_names *.liheng1815.xyz;
if ($invalid_referer) {
rewrite ^/ http://www.test.com/1.jgp;
#return 403;
}
}
}
server {
listen 80;
server_name www.test.com;
root /var/web;
}
…
伪静态配置:php页面伪静态为html文件 location / { rewrite ^(.*)/equip(d+).html$ $1/index.php?m=content&c=index&a=lists&catid=$2 last; }