我是 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
)。
更新
我改为8080
,80
并解决了端口问题。然而,现在(指定端口80
),同时转到两者http://mynginx.example.com
并http://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
}