[英]How to make Nginx virtualhosts work? (currently gives 403 Forbidden error)
我想在我的Ubuntu 10.04 32bit Linode VPS上运行nginx。
sudo chown -R www-data:www-data /var/www
sudo chmod -R 775 /var/www
sudo add-apt-repository ppa:nginx/development
sudo apt-get update
sudo apt-get install nginx
要创建一个nginx虚拟主机:
mkdir -p /var/www/example.com/{public,logs}
sudo nano /etc/nginx/sites-available/example.com
并写了以下内容
server {
listen 80;
server_name www.example.com;
rewrite ^/(.*) http://example.com/$1 permanent;
}
server {
listen 80;
server_name example.com;
access_log /var/www/example.com/logs/access.log;
error_log /var/www/example.com/logs/error.log;
location / {
root /var/www/example.com/public/;
index index.html;
}
}
然后我启用了虚拟主机example.com
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/example.com
sudo /etc/init.d/nginx restart
我将index.html放到/var/www/example.com/public
并从我的浏览器输入www.example.com网址。 然后我得到了关注
403 Forbidden
nginx/0.8.53
tail /var/log/nginx/error.log
给出以下错误
*38 directory index of "/var/www/" is forbidden, client: 88.224.1.128, server: localhost, request: "GET / HTTP/1.1", host: www.example.com
我重做
sudo chown -R www-data:www-data /var/www
sudo chmod -R 775 /var/www
但它给出了同样的错误。
和猫/etc/nginx/nginx.cnf
user www-data;
worker_processes 1;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
# multi_accept on;
}
http {
include /etc/nginx/mime.types;
access_log /var/log/nginx/access.log;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
tcp_nodelay on;
gzip on;
# As per: http://wiki.nginx.org/NginxHttpGzipModule#gzip_disable starting
# with 0.7.63
gzip_disable "msie6";
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
如果我将index.html放到/ var / www /然后我可以看到html文件,但任何将它放在/var/www/example.com/public下的尝试都会失败。 我看了文件和文件夹权限,他们都属于www-data和可读(775)
我该怎么做才能让nginx工作? 谢谢
403是因为关闭了自动索引。
autoindex off;
需要穿上它,你可以看到dirs
autoindex on;
如果关闭,您可以看到文件但不列出目录。
我在Ubuntu 10.04,Nginx和Wordpress上有相同的症状,答案是一个绝望的愚蠢。
如果其他人处于相同的情况....
在我的网站的nginx配置中
location / {
index index.html index.htm;
}
没有index.php
将其添加到列表中可以解决问题
我想
rewrite ^/(.*) http://example.com/$1 permanent;不能正常工作。 主机仍然是www.example.com没有发生重定向,因为您在日志中出现以下错误行:
* 38目录索引“/ var / www /”被禁止,客户端:88.224.1.128,服务器:localhost,请求:“GET / HTTP / 1.1”,主机:www.example.com
尝试使用重写行。
另一个版本:你确定,这些线路是否正常工作?
include /etc/nginx/conf.d/*.conf;\n include / etc / nginx / sites-enabled / *;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.