配置 nginx 以使用默认端口和索引

配置 nginx 以使用默认端口和索引

我是 nginx 新手,在虚拟机 ( mynginx.example.com) 上运行它并成功返回了一些静态内容。到目前为止一切顺利。

然而,它似乎已配置,因此您需要指定两个都端口和您想要查看的文件。这主要是主页 ( index.html) 上的问题,因为我希望用户能够直接访问http://mynginx.example.com并查看我的主页。

因此,如果我打开浏览器并转到http://mynginx.example.com:8080/index.html,我的主页(以及所有其他静态内容)都可以正常加载。但是,在访问主页时,如果我省略任何一个端口或index.html,浏览器阻塞,nginx 似乎拒绝提供任何服务。这意味着,以下两个 HTTP 请求不要工作:

  • http://mynginx.example.com:8080<-- 不
  • http://mynginx.example.com/index.html<-- 不

以下是nginx.conf我正在使用的:

user www-data;
worker_processes 4;
pid /run/nginx.pid;

events {
    worker_connections 768;
}

http {
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;

    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    gzip on;
    gzip_disable "msie6";

    server {
        listen       80;
        server_name   mynginx.example.com;

        location / {
            root   /opt/mysite;
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

有人能弄清楚我需要做什么才能达到http://mynginx.example.com同样的效果吗http://mynginx.example.com:8080/index.html(从 nginx 的角度来看)?意思是,我希望用户能够只使用主域名并让 nginx 提供服务index.html(位于/opt/mysite/index.html)。


更新

我改为808080并解决了端口问题。然而,现在(指定端口80),同时转到两者http://mynginx.example.comhttp://mynginx.example.com/index.html具有完全相同的效果:它们将带您进入默认的 nginx 页面(欢迎使用 nginx!)...

因此,通过将端口从 8080 更改为 80,现在一些 nginx 默认设置开始启动并阻止我访问我的index.html页面。

错误日志中确实有 HTTP GET 错误,但我已修复它们,它们与我在此处看到的行为无关。日志(访问和错误)现在为空。

答案1

所有问题都可以用Nginx 初学者教程以及一点点思考。您需要阅读有关 Web 服务器和 Nginx 的基础知识。

当您请求域的根目录时它显示 index.html 的原因是您告诉它这么做。

location / {
    root   /opt/mysite;
    index  index.html index.htm; # This sets the index
}

相关内容