1、默认虚拟主机
在apapche中配置的第一个虚拟主机就是默认虚拟主机。
Nginx中默认虚拟主机有 default_server 定义,一般是禁止访问的。
定义nginx虚拟主机目录不一定要用vhost,可以自定义其它名字(定义的虚拟目录是相对于conf目录)。
2、Nginx用户认证。
针对目录认证,针对文件认证,不输入用户名密码会报401错误。
重点是生成的密码:htpasswd
安装:yum install -y httpd-tools
htpasswd -c 路径 username
3、Nginx域名重定向。
$host 域名
permanent 表示永久重定向,状态码 301
redirect 表示临时重定向,状态码302
4、Nginx访问日志。
5、Nginx日志切割。
6、Nginx防盗链。
案例:莆田新城网。网站被盗用。
valid_referers 配置白名单
none 允许没有referer
blocked 正常referer是http://www.qq.com,让像是www.qq.com这样的referere也能访问 。
server_names 所有虚拟主机的所有server_name
7、Nginx访问控制。
ngixn访问控制匹配与apache不同。
location ~ \.php$
匹配的是:$uri,不包含 $args 参数。
8、Nginx解析php配置。
fastcgi_param SCRIPT_FILENAME /data/wwwroot/test.com$fastcgi_script_name;
其中:/data/wwwroot/test.com 可以用 $document_root代替。
9、Nginx代理
server
{
listen 80;
server_name ask.apelearn.com;
location /
{
proxy_pass http://223.94.95.10/;
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_set_header Host $host; 内容会导致客户机无法访问到web服务。
不配置时访问流程:
client------> 代理服务器------>server
例如当client访问baidu.com时,到代理服务器中baidu.com指向其ip:1.1.1.2(举例),当代理服务器在想web服务器请求时代理服务器自己相当于client,没有相对应的域名它可能会解析到默认的虚拟主机中去,直接导致访问出现错误。
因此在配置代理是要加上以下三行:
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;