Linux 搭建 Nginx (图片服务器)

Linux 搭建 Nginx (图片服务器),第1张

打开nginx官网 http://nginx.org/en/download.html

yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel

cd /usr/local/

tar -zxvf nginx-1.20.1.tar.gz

./configure --with-http_ssl_module

编译参数有很多,这边我只增加了SSL模块,小伙伴可以根据自身情况调整

--prefix=PATH:指定 nginx 的安装目录

--conf-path=PATH:指定 nginx.conf 配置文件路径

--user=NAME:nginx 工作进程的用户

--with-pcre:开启 PCRE 正则表达式的支持

--with-http_ssl_module:启动 SSL 的支持

--with-http_stub_status_module:用于监控 Nginx 的状态

--with-http-realip_module:允许改变客户端请求头中客户端 IP 地址

--with-file-aio:启用 File AIO

--add-module=PATH:添加第三方外部模块

make

执行完上述命令后,在解压目录下,多出一个Makefile文件

make install

因编译时未指定安装目录,执行make install 命令后看到反馈日志信息,实际安装目录为/usr/local/nginx

进入实际安装目录,看看,并在其sbin目录下执行启动nginx

cd /usr/local/nginx/

浏览器访问 http://ip:80 , 显示如下图则代表部署成功

进入 /usr/local/nginx/conf/ 文件夹,找到nginx.conf 文件

worker_processes 1

events {

worker_connections 1024

}

http {

include mime.types

default_type application/octet-stream

sendfileon

keepalive_timeout 65

server {

listen 8088

server_name localhost

location ~ .*.(gif|jpg|jpeg|png|apk|pdf)$ {

expires 24h

root /usr/local/img/#指定图片存放路径

access_log /usr/local/nginx/logs/images.log#日志路径

proxy_store on

proxy_store_access user:rw group:rw all:rw

proxy_temp_path /usr/local/img/#代理临时路径

proxy_redirect off

}

修改配置文件,内容如上

cd /usr/local/nginx/sbin

./nginx -s reload

浏览器输入 http://ip:8088/1.png ,查看是否能正常显示图片

tomcat是一个jsp的容器,可以解析html但效率远没有apache高,apache是一个静态页面的服务器,在加载一些模块后可以解析phpperl等脚本

apache:侧重于httpserver

tomcat:侧重于servlet引擎,如果以standalone方式运行,功能上与apache等效,支持JSP,但对静态网页不太理想;

apache是web服务器,tomcat是应用(java)服务器,它只是一个servlet(jsp也翻译成servlet)容器,可以认为是apache的扩展,但是可以独立于apache运行。

换句话说,apache是一辆卡车,上面可以装一些东西如html等。但是不能装水,要装水必须要有容器(桶),而这个桶也可以不放在卡车上。

目前FastDFS支持类Unix系统 ,在Linux和FreeBSD下测试过,本文使用的是Ubuntu10.4,建议安装之前先简单了解一下FastDFS的原理 ,这对后继的配置部分会有很好的理解。

一、准备工作-安装libevent

FastDFS 内部绑定了 libevent 作为 http 服务器 ,在V2.X版本必须安装 libevent ,本文安装的是V2.2版本,因此必须安装libevent。(官方也推荐使用 http 方式下载 文件 )

如果已经安装了 libevent,请确认安装路径是 /usr , 因为 FastDFS 在编译源程序时,需要到此目录下查找一些依赖文件,否则编译 FastDFS 会出错 。如果不是,建议首先卸载 libevent ,然后安装到 /usr 下。Ubuntu10.4默认是安装了libevent,可以到软件中心卸载掉然后按照下面介绍的方式安装。

安装步骤:

解压 libevent ,然后进入解压后的目录分别执行:

Shell代码

./configure --prefix=/usr

make clean

make

make install

安装libevent完成。

二、安装 FastDFS

1、下载 FastDFS 源程序

2、在 FastDFS_v4.05.tar.gz 所在文件夹下执行:

Shell代码

sudo tar vxzf FastDFS_v4.05.tar.gz /home/soar/FastDFS

注: /home/soar/FastDFS 也可以是其他目录,记住这是解压目录,以后用 %FastDFS% 表示)

3、由于要使用内置的 http 服务,因此编辑 %FastDFS%/make.sh 文件,找到

#WITH_HTTPD=1

修改成

WITH_HTTPD=1

以支持 http

4、进入 %FastDFS% 目录,执行:

Shell代码

sudo ./make.sh

5、在 %FastDFS% 目录下,执行:

Shell代码

sudo ./make.sh install

如果运行如上命令后,在命令行信息最后看到类似

Shell代码

#ln -fs /usr/local/lib/libfastcommon.so.1 /usr/local/lib/libfastcommon.so

#ln -fs /usr/local/lib/libfdfsclient.so.1 /usr/local/lib/libfdfsclient.so

sh ./fdfs_link_library.sh

恭喜你,已经安装成功了!

FastDFS的配置文件在%FastDFS%/conf目录下,其中包括

Client.conf客户端上传配置文件

Storage.conf文件存储服务器配置文件

Tracker.conf负责均衡调度服务器配置文件

http.confhttp服务器配置文件

配置文件需要根据服务器环境的不同,进行不同的配置,具体可以参考FastDFS官方的安装配置文档http://code.google.com/p/fastdfs/wiki/Setup,以及FastDFS原理介绍文档http://code.google.com/p/fastdfs/wiki/Overview

在本例中,Tracker Server,Storage Server都安装在一台服务器上,IP:10.0.2.15

1、配置及启动Tracker Server

A、修改%FastDFS%/conf/tracker.conf文件,修改如下

#可以自己指定目录位置,但目录必须存在,用于存储日志及storage server等信息,否则tracker server无法启动

Txt代码

base_path=/home/yuqing/fastdfs ->base_path=/home/soar/fastdfs_tracker

#改成你想要的http端口,将来http下载文件的端口就是他了

Txt代码

http.server_port=8080 ->http.server_port=8090

#http支持

Txt代码

##include http.conf ->#include http.conf

#默认4GB,如果空间不足,建议调小,否则会报no free space的异常,无法正常启动

Txt代码

reserved_storage_space = 4GB ->reserved_storage_space = 1GB

#tracker server对storage server供服务的端口,使用默认的即可,也可以自定义

Txt代码

port=22122

B、将http.conf文件拷贝到/etc/fdfs目录下,执行

Shell代码

sudo cp %FastDFS%/conf/http.conf /etc/fdfs/

注:为了支持http,必须将这个文件拷贝到此目录,否则无法启动,报param http.XXX not exist or is empty类似的错误

C、进入/usr/local/bin/目录,启动tracker服务器,执行

Shell代码

sudo fdfs_trackerd %FastDFS%/conf/tracker.conf

D、进入/home/soar/fastdfs_tracker/logs/trackerd.log查看tracker的启动日志,如果看到类似

Shell代码

[2010-11-04 16:21:25] INFO - FastDFS v2.02, base_path=/home/soar/fastdfs_tracker, connect_timeout=30s, network_timeout=60s, port=22122, bind_addr=, max_connections=256, work_threads=4, store_lookup=2, store_group=, store_server=0, store_path=0, reserved_storage_space=4MB, download_server=0, allow_ip_count=-1, sync_log_buff_interval=10s, check_active_interval=120s, thread_stack_size=64 KB, storage_ip_changed_auto_adjust=1, storage_sync_file_max_delay=86400s, storage_sync_file_max_time=300s

[2010-11-04 16:21:25] INFO - HTTP supported: server_port=8090, default_content_type=application/octet-stream, anti_steal_token=0, token_ttl=0s, anti_steal_secret_key length=0, token_check_fail content_type=, token_check_fail buff length=0, check_active_interval=30, check_active_type=tcp, check_active_uri=/status.html

恭喜你,tracker server已经启动成功!

2、配置及启动Storage Server

A、修改%FastDFS%/conf/storage.conf文件,修改如下:

#可以自定义,但必须存在此目录,用于存储storage相关的log、group内的相关信息

Txt代码

base_path=/home/yuqing/fastdfs ->/home/soar/fastdfs_storge

#文件的存储位置,在一台storage server上可以指定多个存储位置

Txt代码

store_path0=/home/yuqing/fastdfs ->store_path0=/home/soar/fastdfs_storge

#必须指定

Txt代码

group_name=group1

#修改成tracker server的IP和端口信息

Txt代码

tracker_server=192.168.209.121:22122 ->tracker_server=10.0.2.15:22122

#http支持

Txt代码

##include http.conf ->#include http.conf

B、进入/usr/local/bin/目录,启动storage服务器,执行

Shell代码

sudo fdfs_storaged %FastDFS%/conf/storage.conf

C、进入/home/soar/fastdfs_tracker/logs/storage.log查看storage服务器启动日志,如果看到类似

Shell代码

[2010-11-04 16:37:16] INFO - FastDFS v2.02, base_path=/home/soar/fastdfs_storge, store_path_count=1, subdir_count_per_path=256, group_name=group1, connect_timeout=30s, network_timeout=60s, port=23000, bind_addr=, client_bind=1, max_connections=256, work_threads=4, disk_rw_separated=1, disk_reader_threads=1, disk_writer_threads=1, buff_size=256KB, heart_beat_interval=30s, stat_report_interval=60s, tracker_server_count=1, sync_wait_msec=200ms, sync_interval=0ms, sync_start_time=00:00, sync_end_time=23:59, write_mark_file_freq=500, allow_ip_count=-1, file_distribute_path_mode=0, file_distribute_rotate_count=100, fsync_after_written_bytes=0, sync_log_buff_interval=10s, sync_binlog_buff_interval=60s, sync_stat_file_interval=300s, thread_stack_size=512 KB, upload_priority=10, if_alias_prefix=, check_file_duplicate=0, FDHT group count=0, FDHT server count=0, FDHT key_namespace=, FDHT keep_alive=0, HTTP server port=8888, domain name=

[2010-11-04 16:37:16] INFO - HTTP supported: server_port=8888, http_trunk_size=262144, default_content_type=application/octet-stream, anti_steal_token=0, token_ttl=0s, anti_steal_secret_key length=0, token_check_fail content_type=, token_check_fail buff length=0

[2010-11-04 16:37:16] INFO - file: storage_param_getter.c, line: 48, storage_ip_changed_auto_adjust=1

[2010-11-04 16:37:19] INFO - file: tracker_client_thread.c, line: 274, successfully connect to tracker server 10.0.2.15:22122, as a tracker client, my ip is 10.0.2.15

恭喜你,storage server已经启动成功!

经过前面的安装、配置、启动,马上就可以看到FastDFS的效果了,我们先上传一个文件,然后再通过http下载。

一、上传文件

FastDFS安装包中,自带了客户端程序,通过程序可以进行文件上传。在使用这个客户端程序之前,首先需要配置client.conf,然后再进行文件上传及下载。

1、修改%FastDFS%/conf/client.conf文件,修改如下:

#可自定义,但此目录必须存在,用于存放文件上传log

Txt代码

base_path=/home/yuqing/fastdfs->base_path=/home/soar/fastdfs_tracker

Txt代码

tracker_server=192.168.209.121:22122 ->tracker_server=10.0.2.15:22122

Txt代码

http.tracker_server_port=8080 ->http.tracker_server_port=8090

#支持http

Txt代码

##include http.conf ->#include http.conf

2、进入/usr/local/bin/目录,上传文件,执行

Txt代码

sudo fdfs_test %FastDFS%/conf/client.conf upload a.txt

注:a.txt可以在/usr/local/bin/目录下自己创建一个

如果命令行反馈类似如下:

则说明上传文件成功。

关于fastdfs集群和备份配置

1、修改tracker.conf文件中store_lookup=2 平衡负载

2、修改tracker.conf文件中store_server=0 采用轮询方式。

如果希望只使用一台文件存储服务器,其他二台做备份,则修改文件tracker_server为某台主机的IP,只启动文件存储服务器的tracker,其他二台备份服务器不需要启动tracker。

如果希望三台服务器集群使用,互相备份,比如:使用A机器存储文件,这时候A机器会将文件同步到B机器和C机器,同理使用B机器存储文件,则会同时将文件同步到A机器和C机器。这时候需要将所有的机器IP和端口号

都配置在storage.conf中,如下所示:

tracker_server=10.207.16.127:22122

tracker_server=10.207.16.129:22122


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/429622.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-27
下一篇2023-05-27

发表评论

登录后才能评论

评论列表(0条)

    保存