nginx搭建图片服务器的过程详解(root和alias的区别)

Nginx搭建图片服务器的过程详解

1. 什么是Nginx?

Nginx是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP服务器。 Nginx的目的是为了解决C10k问题。

2. Nginx搭建图片服务器

2.1 安装Nginx

使用apt-get在Ubuntu上安装

sudo apt-get install nginx

安装完成后,Nginx会自动启动,可用以下命令查看进程是否已经启动:

ps -ef | grep nginx

在浏览器中输入服务器的IP地址或域名,可以看到Nginx的默认页面,说明Nginx安装成功。

2.2 配置Nginx

2.2.1 root和alias的区别

在配置静态文件访问时,Nginx中有两种配置方式,分别是root和alias。

1. root

使用root配置时,指定的路径表示的是文件所在的目录,如下:

location /image/ {
    root /data/image;
    index index.html;
}

表示在访问http://example.com/image/路径时,Nginx会将请求的URI转换成请求的文件路径为/data/image/下的文件。

2. alias

使用alias配置时,指定的路径表示的是文件所在的具体路径,如下:

location /image/ {
    alias /data/image/;
    index index.html;
}

表示在访问http://example.com/image/路径时,Nginx会将请求的URI转换成请求的文件路径为/data/image/下的文件。

使用alias配置方式时需要注意的是,路径后面必须加上斜杠。

2.2.2 配置Nginx访问图片

1)在Nginx配置文件中添加以下内容

server {
    listen       80;
    server_name  example.com;

    location /image/ {
        alias /data/image/;
        index index.html;
    }
}

其中,/data/image/为存放图片的路径,/image/为访问路径前缀。

2)重新加载Nginx配置文件

sudo service nginx reload

3)将图片保存到/data/image/路径下,并通过访问http://example.com/image/来访问。

2.3 整合PHP和Nginx

如果需要在PHP代码中访问图片,需要将FastCGI参数中的PATH_INFO关闭,并设置SCRIPT_FILENAMEORIG_PATH_INFO,具体配置如下:

server {
    listen       80;
    server_name  example.com;

    location /image/ {
        alias /data/image/;
        index index.html;

        # 添加php需要的配置
        include        fastcgi_params;
        fastcgi_index  index.php;

        # 关闭PATH_INFO传递
        fastcgi_param  PATH_INFO          "";
        fastcgi_param  SCRIPT_FILENAME   $document_root$fastcgi_script_name;
        fastcgi_param  ORIG_PATH_INFO     $fastcgi_path_info;
        fastcgi_pass   unix:/run/php/php7.2-fpm.sock;
    }
}

以上配置将PHP和Nginx整合起来,通过PHP代码访问图片和普通的静态资源访问没有区别。

3. 示例说明

3.1 示例1:使用root配置

location /image/ {
    root /data/image;
    index index.html;
}

若访问http://example.com/image/1.jpg,Nginx会将请求的文件路径解析为/data/image/1.jpg

3.2 示例2:使用alias配置

location /image/ {
    alias /data/image/;
    index index.html;
}

若访问http://example.com/image/1.jpg,Nginx会将请求的文件路径解析为/data/image/1.jpg

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:nginx搭建图片服务器的过程详解(root和alias的区别) - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • nginx——优化 Nginx worker 进程数

    Nginx 有 Master 和 worker 两种进程,Master 进程用于管理 worker 进程,worker 进程用于 Nginx 服务 worker 进程数应该设置为等于 CPU 的核数,高流量并发场合也可以考虑将进程数提高至 CPU 核数 * 2 1。 grep -c processor /proc/cpuinfo # 查看CPU核数 2。vi…

    Nginx 2023年4月17日
    00
  • nginx ssl配置 实现http自动跳转到https

    #性能配置 一般配置cpu的核数worker_processes 64;events { worker_connections 1024;} http {   include mime.types;   default_type application/octet-stream;   sendfile on;   keepalive_timeout 65; …

    Nginx 2023年4月13日
    00
  • Nginx安装echo模块

    1、下载需要的echo模块https://github.com/openresty/echo-nginx-module/tags# wget https://github.com/openresty/echo-nginx-module/archive/v0.60.tar.gz# tar zxvf v0.60.tar.gz# mv echo-nginx-mod…

    Nginx 2023年4月11日
    00
  • 修改nginx配置,并重启nginx服务

    各位读者,大家好。     我们在很多项目中都是前后集成的方式,但是前端无法直接访问后端,因此使用nginx中间件来实现跳转和负载。     那么我们就需要会配置nginx。     如下,先找到前端部署的服务所在机器。登录之后找到nginx配置文件:         比如,我的nginx配置文件在/mnt/nginx/conf/nginx.conf    …

    Nginx 2023年4月11日
    00
  • nginx防盗链处理模块referer和secure_link模块

    使用场景:某网站听过URI引用你的页面;当用户在网站点击url时;http头部会通过referer头部,将该网站当前页面的url带上,告诉服务本次请求是由这个页面发起的 思路:通过referer模块,用invalid_referer变量根据配置判断referer头部是否合法。 目的:拒绝非正常网站访问我们站点资源 默认:referer模块默认编译进nginx…

    Nginx 2023年4月13日
    00
  • Nginx的平滑重启和平滑升级

    一,Nginx的平滑重启如果改变了Nginx的配置文件(nginx.conf),想重启Nginx,可以发送系统信号给Nginx主进程的方式来进行。在重启之前,要确认Nginx配置文件的语法是正确的。 测试配置文件是否正确:/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf如果配…

    Nginx 2023年4月11日
    00
  • nginx目录结构和配置文件

    nginx软件功能模块说明 Nginx软件之所以强大,是因为它具有众多的功能模块,下面列出了企业常用的重要模块。 (1) Nginx核心功能模块(Core functionality)nginx核心功能模块负责Nginx的全局应用,主要对应主配置文件的Main区块和Events区块区域,这里有很多Nginx必须的全局参数配置。有关核心功能模块的详细信息,请看…

    Nginx 2023年4月10日
    00
  • Nginx服务器配置HTTPS nginx.config 配置文件(教程)

    下面我来详细讲解“Nginx服务器配置HTTPS nginx.config 配置文件(教程)”的完整攻略。 什么是HTTPS HTTPS 是一种安全的HTTP协议,它是在HTTP协议和TLS/SSL协议上建立的。通过 HTTPS 传输的数据经过 SSL/TLS 加密,可以有效地防止数据被篡改或窃取。在 Web 安全方面,HTTPS 是一个非常重要的概念。 配…

    Nginx 2023年5月16日
    00
合作推广
合作推广
分享本页
返回顶部