我试图在Oracle VM VirtualBox内运行在Debian Linux下的NGINX服务器上设置几个网站。
版本:Oracle VM VirtualBox: 4.3.10, Debian: Wheezy, NGINX: 1.2.1
/etc/nginx/nginx.conf文件:user www-data;
worker_processes 1;
pid /var/run/nginx.pid;
events {
worker_connections 768;
# multi_accept on;
}
http {
autoindex on;
index index.html index.htm index.php;
sendfile off;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 30;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
error_page 404 = /usr/share/nginx/www/404.html;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log warn;
gzip on;
gzip_disable "msie6";
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
/etc/nginx/sites-available/default文件:server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /usr/share/nginx/www;
server_name vmhost;
location / {
try_files $uri $uri/ /index.htm /index.html =404;
}
error_page 404 /404.html;
location ~ .php$ {
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
location ~* /(images|cache|media|logs|tmp)/.*.(php|pl|py|jsp|asp|sh|cgi)$ {
return 403;
error_page 403 /403_error.html;
}
location ~ /.ht {
deny all;
}
}
/etc/nginx/sites-available/testsitea文件:
server {
listen 80;
listen [::]:80;
server_name mytest;
root /usr/share/nginx/www/testfolder/public;
location / {
try_files $uri $uri/ /index.html;
}
}
符号链接:
root@debian-nginx:/etc# ls -l /etc/nginx/sites-enabled
total 0
lrwxrwxrwx 1 root root 34 Mar 17 13:47 default -> /etc/nginx/sites-available/default
lrwxrwxrwx 1 root root 36 Mar 25 14:30 testsitea -> /etc/nginx/sites-available/testsitea
当我将浏览器发送到http://192.168.1.45/
时,我看到了预期的"欢迎使用nginx!"如果我将浏览器地址设置为http://192.168.1.45/vmhost
,我也会看到"欢迎来到nginx!"
当我将浏览器指向http://192.168.1.45/mytest
时,我期望看到的是我的测试站点的静态index.html文件。我实际上看到的是"Welcome to nginx!"文件。
error.log文件只显示"signal process started "。我确认文件夹权限设置为755,文件权限设置为644。
你能看到我的错误在哪里吗?
由于您的两个配置文件都被配置为侦听相同的端口(80),因此请求被发送到其中标记有default_server
的服务器配置,即根目录位于/usr/share/nginx/www
的/etc/nginx/sites-available/default
配置。
要获得预期的行为,您可以遵循以下选项之一:
- 将testsitea服务器配置标记为
default_server
,并将其从默认配置文件中删除。 - 更改testsitea配置的监听端口,并尝试使用指定的端口连接到testsitea。
- 在你试图连接的系统的/etc/hosts文件中添加这些条目:
192.168.1.45 mytest
192.168.1.45 vmhost
并连接到http://mytest
或http://vmhost
的网站,如之前建议的@alexeyten
您定义了服务器mytest
,但是从默认服务器请求页面 /mytest
。
你必须添加字符串
192.168.1.45 mytest
指向您的/etc/hosts
文件,并将浏览器指向http://mytest/
。