nginx搭建图片服务器 nginx1.8.15

图片服务器的搭建01

nginx+vsftp搭建图片服务器

前言:

在分布式架构中,往往会有多个tomcat,然后你上传的图片只是在其中的某一个tomcat,你访问时是由集群的tomcat随机提供服务。当你访问的tomcat是有图片的那个时,图片能正常显示,如果恰巧是那个没有图片的tomcat时,图片就不能正常显示。这就完成了访问同一个图片,可能你刷新一次可以访问,再刷新一次图片就访问不到了。这时,我们就需要一个服务器用来专门存储图片,一般我们都用nginx。

1、nginx+vsftp:

上面分别介绍了nginx和vsftp,那么这两个东西怎么组合起来用呢?怎么实现这个图片服务器呢?我们知道,tomcat安装好启动后,在浏览器输入localhost:8080,就会出现tomcat的欢迎页,nginx也一样。比如linux的ip是192.168.50.122,那么启动nginx后,在浏览器访问这个地址也会出现nginx的欢迎页,其实是因为它有个默认的访问页面,完整的地址应该是192.168.50.122/index.html,那么我们就可以根据这个,把它默认的访问页面改成我们上传的图片的保存路径,比如上传了一张pic.jpg图片到linux的/home/ftpuser/images中,如果我们把默认访问页面改成/home/ftpuser,那么在浏览器中输入192.168.50.122/images/pic.jpg,就可以访问到这张图片了。下面就来介绍nginx、vsftp的安装以及配置。

<meta charset="utf-8">

1、安装:

2、添加ftp用户:

3、给ftp用户添加密码:

输入两次密码后修改密码。

4、修改selinux:

①查看状态:

执行这个命令可以看到

这两个都off,执行如下命令设置为on:

再次执行 getsebool-a| grep ftp看到那两个状态是on就行了。

5、关闭匿名访问:

执行

命令:

还要在vsftp.conf文件最下面添加以下内容:

然后保存退出即可。

6、设置开机启动:

7、测试:

打开filezilla工具,输入虚拟机的ip,21端口,用户名和密码,点击快速连接,连接vsftp服务:

如图所示则连接成功。

<meta charset="utf-8">

按照以上步骤安装好nginx和vsftp后,还是不能访问上传的图片的,需要进行如下配置:

执行

命令,打开nginx的配置文件:

按道理这样就可以了,但是我访问却报错:

403 forbidden,最后发现是因为ftpuser文件夹没有可读权限,执行如下命令:

再次访问即可成功!

至此图片服务器搭建完成!至于在Java中如何使用这个图片服务器,请参考 Java实现把图片上传到图片服务器。

在搭建的过程中,遇到很多坑,因为我参考的教程是centos 6,防火墙是iptables,而centos 7是firewall,

Win+Nginx+PHP+MySQL环境搭建

1. Win+Nginx+PHP+MySQL环境搭建

Nginx是一个高性能的HTTP和反向代理服务器,同时还是IMAP/POP3/SMTP代理服务器,该程序由俄罗斯Rambler.ru站点开发,Nginx因为性能稳定、低系统资源消耗而闻名。近几年Nginx在国内已经成炙热化状态,比如像腾讯、网易、51CTO、迅雷、当当网、 51、人人网等诸多大型网站都已经使用Nginx来做Web服务器,所以学习Nginx还是非常有必要的。2011年6月1日,nginx 1.0.4发布。

1.1.程序下载

PHP下载:进入PHP官网下载网址:。选择最新版本“VC9 x86 Thread Safe(2011-Mar-22 13:27:32)”(如图1),弹出保存对话框,保存在硬盘目录下(如图2)。

  图1

  图2

Non Thread Safe:非安全线程。Thread Safe与之相反。

Zip:压缩包。

Installer:安装包。

Debug Pack:调试包。

MySQL下载:进入MySQL官网下载网址:。选择“No thanks,just take me to the downloads!”(如图3)。选择最新镜像“mysql-installer-5.5.13.0.msi”(如图4),弹出保存对话框,保存在硬盘目录下(如图5)。

  图3

  图4

  图5

Nginx下载:进入Nginx官网下载网址:。选择最新版本“nginx/Windows-1.0.4 pgp”(如图6),弹出保存对话框,保存在硬盘目录下(如图7)。

  图6

  图7

1.2.程序安装

在E盘新建目录为DedeCMS,把程序全部安装在此文件夹中。

PHP配置:在DedeCMS目录下新建文件夹PHP5,压缩包解压至此目录,把php.ini-production重命名为php.ini,用编辑器打开此文件(最好不要用记事本打开),此文件为PHP配置文件。

查找定位至:; extension_dir="./",将前面的分号去掉并修改为:extension_dir="E:DedeCMSPHP5ext"

查找定位至:;extension=php_gd2.dll,将前面的分号去掉为:extension=php_gd2.dll

查找定位至:;extension=php_mbstring.dll,将前面的分号去掉为:extension=php_mbstring.dll

查找定位至:;extension=php_mysql.dll,将前面的分号去掉为:extension=php_mysql.dll

查找定位至:;extension=php_mysqli.dll,将前面的分号去掉为:extension=php_mysqli.dll

查找定位至:;extension=php_pdo_mysql.dll,将前面的分号去掉为:extension=php_pdo_mysql.dll

查找定位至:;cgi.force_redirect= 1,将前面的分号去掉为:cgi.force_redirect= 1

查找定位至:;cgi.fix_pathinfo=1,将前面的分号去掉为:cgi.fix_pathinfo=1

查找定位至:;cgi.rfc2616_headers= 0,将前面的分号去掉为:cgi.rfc2616_headers= 1

MySQL安装:双击安装包进入安装环境界面,选择“Install MySQL Products”(如图8)。

  图8

选择“I accept the license terms”,再选择“Next”按钮继续安装(如图9)。

  图9

选择“Skip the check for updates(not recommanded)”,再选择“Next”按钮继续安装(如图10)。

  图10

选择“Custom”,更改安装路径为之前创建的目录。再选择“Next”继续安装(如图11)。

  图11

选择“MySQL Server 5.5.13”与“MySQL Workbench 5.2.34”,“MySQL Workbench 5.2.34”是可视数据库设计工具。这个工具是设计MySql数据库的专用工具。也可根据需要选择是否安装。选择“Next”按钮继续安装(如图 12)。

  图12

选择“Next”按钮继续安装(如图13)。

  图13

稍等片刻。程序安装完成,选择“Next”按钮进行产品配置(如图14)。

  图14

选择“Server Machine”,再选择“Next”按钮继续(如图15)。

  图15

默认3306端口,默认MySQL55 Windows服务进程名称。输入密码与重复密码。选择“Next”按钮继续(如图16)。

  图16

程序会自动安装,安装完成选择“Next”出现安装完成界面(如图17)。

  图17

Nginx配置:将压缩包nginx-1.0.4目录下的所有文件夹解压至DedeCMS目录,打开conf目录下nginx.conf配置文件。

第45行改为:index index.html index.htm index.php; 加了PHP文件支持。

第65至71行改为:

location~.php${

root          html;

fastcgi_pass  127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param script_FILENAME e:/dedecms/html$fastcgi_script_name;

include       fastcgi_params;

}

e:/dedecms/html为网站的根目录。此目录也可以重新配置。找到代码:

location/{

root  html;

index index.html index.htm index.php;

  }

其中 root html;就是网站根目录,如可以改为:root wwwroot;

   1.3.服务的启动与关闭

建立两个文件分别启动、关闭服务进程。

在DedeCMS中建立文件start_nginx.bat

@echo off

echo Starting PHP FastCGI...

RunHiddenConsole e:/DedeCMS/PHP5/php-cgi.exe-b 127.0.0.1:9000-c e:/DedeCMS/PHP5/php.ini

echo Starting nginx...

RunHiddenConsole e:/DedeCMS/nginx.exe

Exit

在DedeCMS中建立文件stop_nginx.bat

@echo off

echo Stopping nginx...

taskkill/F/IM nginx.exe nul

echo Stopping PHP FastCGI...

taskkill/F/IM php-cgi.exe nul

exit

下载软件:。(只能上传图片,传不了软件)

解压至DedeCMS目录,双击start_nginx.bat启动服务进程(如图18)。由此可见,stop_nginx.bat文件为关闭服务进程。

图18

   1.4.环境测试

在网站根目录中建立index.php文件,内容为:

html

head

titleWelcome to nginx!/title

/head

body

?php

$link= mysql_connect("localhost","root","123456");

if($link){

echo"数据库连接成功!";

}else{

echo"数据库连接失败!";

}

?

/body

/html

输出“数据库连接成功!”,nginx的PHP环境配置成功(如图19)。

图19

ftp+nginx 搭建图片服务器出现 403 forbidden的解决方法

当使用ftp上传图片后,尝试通过nginx访问却遭遇403 forbidden的错误。这个错误意味着服务器响应正常,但访问权限存在问题。问题出在图片文件夹的权限设置上,例如/home/ftpuser目录,它默认只允许root和ftpuser用户访问。

针对这个问题,有两种解决策略:

首先,你可以调整相关文件夹(例如www/iamges)的权限,使其对所有用户开放。这可以通过更改文件夹权限设置实现,确保其他用户也可以访问图片。

其次,另一种方法是修改nginx的运行用户。在nginx的配置文件nginx.conf中,通常有注释行#user nobody;你可以取消注释并将其改为user ftpuser;。这样可以使nginx以ftpuser用户身份运行,从而获得必要的文件访问权限。

完成这些修改后,记得重启nginx服务器并重新加载配置,以应用更改。这样,你应该就能顺利地通过nginx访问上传的图片,而不会收到403 forbidden的错误提示了。

阅读剩余
THE END