許多人都可以遇到一個陷阱。下面我們列出,我們常常看到的問題,以及表明如何辦理這些問題。在Freenode上的#nginx IRC頻道這些接頭很頻繁。
1、權限
從來不要利用777權限,查察目次的權限
2、root配置
BAD:
server {
server_name www.example.com;
location / {
root /var/www/nginx-default/;
# [...]
}
location /foo {
root /var/www/nginx-default/;
# [...]
}
location /bar {
root /var/www/nginx-default/;
# [...]
}
}
GOOD:
server {
server_name www.example.com;
root /var/www/nginx-default/;
location / {
# [...]
}
location /foo {
# [...]
}
location /bar {
# [...]
}
}
3、索引配置
BAD:
http {
index index.php index.htm index.html;
server {
server_name www.example.com;
location / {
index index.php index.htm index.html;
# [...]
}
}
server {
server_name example.com;
location / {
index index.php index.htm index.html;
# [...]
}
location /foo {
index index.php;
# [...]
}
}
}
GOOD:
http {
index index.php index.htm index.html;
server {
server_name www.example.com;
location / {
# [...]
}
}
server {
server_name example.com;
location / {
# [...]
}
location /foo {
# [...]
}
}
}
4、Using If
if 是邪惡的 拜見 If Is Evil
5、Server Name (If)
BAD:
server {
server_name example.com *.example.com;
if ($host ~* ^www.(.+)) {
set $raw_domain $1;
rewrite ^/(.*)$ $raw_domain/$1 permanent;
}
# [...]
}
}
每次都要檢測主機頭,這是低效的,英國服務器 俄羅斯主機,你應該制止,推薦利用下面的
GOOD: