使用nginx写index.html文件,nginx配置默认首页(index.htnl index.htm)全流程

需求:

自己有个域名,原来直接扔在了服务器的文件夹里(根据客服人员指导),自己玩了一遍nginx的安装部署等操作之后,域名的指向发生了改变,到了nginx成功的界面。

自己抱着极大的好奇心来配置nginx,已达到我能访问到我的主页的样子,当然啦。做个域名主页对我来说最主要的作用就是学(装)习(逼)。

解决方案:

google找到了其中的方法,大概就是修改nginx的配置文件了,让其index指向特定目录下的index.html等主页文件。

先开始一顿配置nginx的操作:

1,找到nginx.conf文件的位置,并将其用vi命令打开。

2,在其中设置自己主页的路径,和主页名称。

# 打开配置文件

cd /usr/local/nginx/conf

vi nginx.conf

# 配置nginx

listen 80;

location / {

index login.html;

root root/home;

}

我们仅仅配置是不行的,还需要重新启动一下,这样子我们的配置才可以生效。

# 启动nginx

cd usr/local/nginx/sbin

./nginx

# 重启nginx

cd /usr/local/nginx/sbin

./nginx -s reload

我们重启了之后,再次通过域名指向我们ip地址的时候,nginx欢迎的界面没有了,取而代之的是403 is forbidden了。

google一下发现导致403的原因很多:

1,指定的文件夹没有这个首页的文件。(index.html)

2,权限问题,如果nginx没有web目录的操作权限,也会出现403错误。

我的是因为权限问题导致的,知道了原因就很好解决啦。

#解决权限问题

chmod -R 755 /root/home

之后我们需要,把nginx的启动用户改成目录的所属用户方法:

#在打开配置文件之后配置,我的简单粗暴

user root;

最后:

表面上成功的实现了功能。其实还有很多很多东西自己不懂。

最后的最后还涉及到了环境变量的配置。

配置nginx环境变量:

#打开配置文件

vi /etc/profile#增加配置

export NGINX_HOME=/usr/local/nginx

export PATH=$PATH:$NGINX_HOME/sbin#保存 - 》 执行

source /etc/profile

最后的最后的最后:

参考博客:

### Nginx 请求 `index.js` 却返回 HTML 的原因分析 Nginx 出现请求 JavaScript 文件却返回 HTML 的情况,通常是因为配置中的匹配规则优先级设置不当或者正则表达式的顺序错误。具体来说,在处理静态资源时,如果未正确区分不同类型的文件(如 `.html`, `.js`, `.css`),可能会导致某些请求被误导向到其他处理器。 以下是可能的原因以及对应的解决方案: #### 1. **检查 location 匹配规则** 如果在 Nginx 配置中存在多个 `location` 块,并且这些块的匹配模式冲突,则可能导致不正确的响应行为。例如,当一个通用的 `location /` 或者基于正则表达式的 `~* \.(htm|php)$` 被放置在更具体的静态资源配置之前时,它会覆盖掉针对特定扩展名(如 `.js`)的精确匹配[^1]。 #### 修改建议: 将更为特殊的路径放在前面以确保它们先得到应用。比如下面的例子展示了如何分别定义用于服务JavaScript和其他资产类别的指令集: ```nginx server { listen 80; server_name localhost; root /var/www/html; # 处理 .js 文件 location ~* \.js$ { add_header Content-Type application/javascript; try_files $uri =404; } # 对于 CSS 和 图片等其它静态资源同样适用单独 rule location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc|woff2?)${ expires max; log_not_found off; } # 默认页面加载逻辑保持最后执行 location / { index index.html index.htm; try_files $uri $uri/ /index.html; } } ``` #### 2. **确认 MIME 类型是否正确** 即使 URL 映射无误, 若服务器未能识别所请求的内容类型也可能引发此现象。因此有必要验证mime.types文件里是否有对应的应用程序/json或text/javascript条目来支持javascript脚本传输. #### 解决方法: 编辑 nginx.conf 中 include 行指向 mime.types 文档的位置并保证其包含如下行项. ```bash application/javascript js; ``` 如果没有找到该记录,请手动添加进去再重启服务生效即可。 --- ### 总结 通过调整 Location Blocks 的排列次序使得更加专精化的规则得以最先施行;同时核查 Mime Types 设置保障客户端接收到预期的数据格式这两方面入手可以有效缓解此类状况的发生几率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值