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_FILENAME
和ORIG_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技术站