【问题标题】:Unable to See VirtualBox NGINX Sites看不到 VirtualBox NGINX 站点
【发布时间】:2014-03-26 17:20:25
【问题描述】:

我正在尝试在 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,我还会看到“Welcome to nginx!”

当我将浏览器指向http://192.168.1.45/mytest 时,我希望看到的是我的测试站点的静态 index.html 文件。我实际看到的是“欢迎使用 nginx!”文件。

error.log 文件仅显示“signal process started”。我已经验证文件夹权限设置为755,文件权限设置为644。

你能看到我的错误在哪里吗?

【问题讨论】:

    标签: nginx virtualbox


    【解决方案1】:

    由于您的两个配置文件都配置为侦听同一端口(80),因此请求将发送到其中标有default_server 的服务器配置,即/etc/nginx/sites-available/default 配置,其根目录位于@ 987654323@.

    要获得预期的行为,您可以遵循以下选项之一:

    1. 将 testsitea 服务器配置标记为 default_server 并从默认配置文件中删除。
    2. 更改testsitea配置的监听端口,尝试使用指定端口连接。
    3. 在您尝试连接的系统中的 /etc/hosts 文件中添加这些条目:

    192.168.1.45 mytest

    192.168.1.45 vmhost

    并按照@alexeyten 之前的建议以http://mytesthttp://vmhost 连接到网站

    【讨论】:

    • 在我在 NGINX 服务器上托管多个开发网站的特定场景中,将其中一个设置为 default_server 效率不高。出于同样的原因,拥有各种监听端口会很麻烦。我的 C:\WINDOWS\system32\drivers\etc\hosts 文件的附加内容正在处理中。我会努力将 IP 地址(可能会定期更改)替换为更永久的名称。
    【解决方案2】:

    您定义了服务器mytest,但从默认服务器请求页面 /mytest

    你必须添加字符串

    192.168.1.45    mytest
    

    到您的/etc/hosts 文件并将浏览器指向http://mytest/

    【讨论】:

    • 确实 工作,虽然我希望避免在 C:\WINDOWS\system32\drivers\etc\hosts 中使用特定的 IP 地址 i> 文件。我认为我可以找到一种使用符号名或主机名的方法。
    猜你喜欢
    • 1970-01-01
    • 2019-07-03
    • 2015-10-27
    • 1970-01-01
    • 2021-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多