使用nginx部署HTML项目,静态资源资源无法访问

本文档详细介绍了如何将项目部署到Nginx的html目录下,并提供了自定义nginx配置文件custom.conf的步骤。配置中包括设置监听端口9999,指定服务器名称,设置默认首页为index.html,以及定义项目文件夹objName和静态资源路径birthday,确保静态资源如gif、jpg、css、js等能够正常访问。此外,还设置了文件缓存过期时间和日志记录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 将项目拉倒nginx/html文件夹下
  2. 复制nginx/conf/nginx.conf在同级目录,我的取名为nginx/conf/custom.conf
  3. 修改custom.conf配置文件
server
    {
        #监听端口
        listen 9999;
        server_name XXX;
        index index.html index.htm index.php;
        # root  /www/server/phpmyadmin;
        location /{
            # objName项目文件夹的路径
            root html/objName;
    		# html文件名
            index index.html;
            autoindex on;
            try_files $uri $uri/ /index.html;
        }
        #配置这个静态资源访问路径,否则静态资源会找不到
        location ~.*\.(gif|jpg|css|js|mp3|png){
            root html/birthday;
            expires 3000d;
        }
……  中间省略
        access_log  /www/wwwlogs/access.log;
    }
### 配置 Nginx 部署项目并正确指向静态资源 为了使 Nginx 正确加载静态件,需要合理配置 `location` 和 `root` 或者 `alias` 指令来确保请求能够被正确路由到对应的物理路径下。 #### 使用 Root 指定根目录 当使用 `root` 指令Nginx 将会把 URL 中的路径附加到由 `root` 定义的基础路径之后形成完整的件系统路径。例如: ```nginx server { listen 80; server_name example.com; location /static/ { root /var/www/example/; index index.html index.htm; } } ``` 在这个例子中,如果客户端尝试访问 `/static/image.png` ,那么 Nginx 实际上会在服务器上的 `/var/www/example/static/image.png` 寻找该图片[^1]。 #### 使用 Alias 更精确映射 对于某些情况来说,更推荐使用 `alias` 来代替 `root` 。因为 `alias` 可以直接定义目标位置而不需要再拼接URL中的部分作为子目录: ```nginx server { listen 80; server_name example.com; location /static/ { alias /var/www/example/assets/; try_files $uri =404; } } ``` 这里,任何对 `/static/*` 的请求都将直接对应于 `/var/www/example/assets/*` 件夹下的内容,而不是像上面那样将 `/static/` 加入到基础路径后面[^2]。 #### 设置 Location 匹配规则 可以利用正则表达式或者其他方式进一步细化 `location` 的匹配逻辑,比如只处理特定类型的件或应用不同的策略给不同前缀的 URI : ```nginx location ~* \.(jpg|jpeg|png|gif)$ { expires max; log_not_found off; } location ^~ /downloads/ { internal; alias /secure/downloads/; } ``` 上述第一个区块会对所有图像件启用缓存控制,并忽略不存在件的日志记录;第二个区块则是内部使用的下载链接,不允许外部直接访问。 #### HTTPS 访问与安全增强 考虑到现代 Web 应用的安全需求,在生产环境中通常建议通过 SSL/TLS 协议提供服务。这涉及到获取有效的SSL证书以及调整 Nginx 配置支持HTTPS连接[^4]: ```nginx server { listen 443 ssl; server_name example.com; ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/key.pem; # ...其他配置... } ``` 以上展示了基本的 HTTPS 听取端口及证书指派的方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值