FastDFS 是一个开源的高性能分布式文件系统(DFS)。 它的主要功能包括:文件存储、文件同步和文件访问,以及高容量和负载平衡。主要解决海量数据存储问题,特别适合以中小文件(建议范围:4KB < file_size <500MB)为载体的在线服务。
FastDFS 系统有三个角色:跟踪服务器(Tracker Server)、存储服务器(Storage Server)和客户端(Client)。
Tracker Server:跟踪服务器,主要做调度工作,起到均衡的作用;负责管理所有的 storage server和 group,每个 storage 在启动后会连接 Tracker,告知自己所属 group 等信息,并保持周期性心跳。
Storage Server:存储服务器,主要提供容量和备份服务;以 group 为单位,每个 group 内可以有多台 storage server,数据互为备份。
Client:客户端,上传下载数据的服务器,也就是我们自己的项目所部署在的服务器。
为了支持大容量,存储节点(服务器)采用了分卷(或分组)的组织方式。存储系统由一个或多个卷组成,卷与卷之间的文件是相互独立的,所有卷的文件容量累加就是整个存储系统中的文件容量。一个卷可以由一台或多台存储服务器组成,一个卷下的存储服务器中的文件都是相同的,卷中的多台存储服务器起到了冗余备份和负载均衡的作用。
在卷中增加服务器时,同步已有的文件由系统自动完成,同步完成后,系统自动将新增服务器切换到线上提供服务。当存储空间不足或即将耗尽时,可以动态添加卷。只需要增加一台或多台服务器,并将它们配置为一个新的卷,这样就扩大了存储系统的容量。
FastDFS向使用者提供基本文件访问接口,比如upload、download、append、delete等,以客户端库的方式提供给用户使用。 Storage Server会定期的向Tracker Server发送自己的存储信息。当Tracker Server Cluster中的Tracker Server不止一个时,各个Tracker之间的关系是对等的,所以客户端上传时可以选择任意一个Tracker。当Tracker收到客户端上传文件的请求时,会为该文件分配一个可以存储文件的group,当选定了group后就要决定给客户端分配group中的哪一个storage server。当分配好storage server后,客户端向storage发送写文件请求,storage将会为文件分配一个数据存储目录。然后为文件分配一个fileid,最后根据以上的信息生成文件名存储文件。
写文件时,客户端将文件写至group内一个storage server即认为写文件成功,storage server写完文件后,会由后台线程将文件同步至同group内其他的storage server。每个storage写文件后,同时会写一份binlog,binlog里不包含文件数据,只包含文件名等元信息,这份binlog用于后台同步,storage会记录向group内其他storage同步的进度,以便重启后能接上次的进度继续同步;进度以时间戳的方式进行记录,所以最好能保证集群内所有server的时钟保持同步。
客户端uploadfile成功后,会拿到一个storage生成的文件名,接下来客户端根据这个文件名即可访问到该文件。 跟upload file一样,在downloadfile时客户端可以选择任意tracker server。tracker发送download请求给某个tracker,必须带上文件名信息,tracker从文件名中解析出文件的group、大小、创建时间等信息,然后为该请求选择一个storage用来服务读请求。
1.局域网环境下,不能连接互联网。
2.需要准备的安装包:CentOS-6.8.iso、FastDFS_v5.08、nginx-1.8.1、libfastcommon-master、fastdfs-nginx-module。
3.安装包统一存放在/usr/softpackages,需要自行创建该目录。
1.将“CentOS-6.8-x86_64-bin-DVD1.iso”上传到/usr/softpackages,将其挂载到/media/下:
[root@centos ~]# mount -o loop /usr/softpackages/CentOS-6.8-x86_64-bin-DVD1.iso /media/ |
---|
2.添加本地yum源
[root@centos ~]# yum-config-manager --add-repo="file:///media" 已加载插件:fastestmirror, refresh-packagekit adding repo from: file:///media [media] name=added from: file:///media baseurl=file:///media enabled=1 |
---|
3.修改media_cdrom.repo文件。在该文件中添加一行“gpgcheck=0”,去掉yum源验证(gpgcheck=0关闭验证,gpgcheck=1启用验证)
[root@centos ~]# cd /etc/yum.repos.d/ [root@centos ~]# ls CentOS-Base.repo CentOS-Debuginfo.repo CentOS-fasttrack.repo CentOS-Media.repo CentOS-Vault.repo media.repo #刚刚添加的yum源 [root@centos yum.repos.d]# vim media.repo [media] name=added from: file:///media baseurl=file:///media enabled=1 gpgcheck=0 |
---|
4.关闭其他yum源
即使其他yum源(centos自带的)不生效。由于不能连接互联网,这些自带的yum源都不能使用。通常的做法是改变yum源中的enabled参数,使enabled=0(enabled=1生效,enabled=不生效)。但这里不使用该方法,有效的yum源文件是.repo文件,修改文件名亦可使其失效。这里将默认的yum源文件名(包括CentOS-Base.repo、CentOS-Debuginfo.repo、CentOS-fasttrack.repo、CentOS-Media.repo、CentOS-Vault.repo)后面加上.bk(CentOS-Base.repo.bk、CentOS-Debuginfo.repo.bk、CentOS-fasttrack.repo.bk、CentOS-Media.repo.bk、CentOS-Vault.repo.bk),使之失效。
这里用的安装包都是C语言开发的源码包,需要使用gcc编译工具进行编译安装。
[root@centos ~]# yum -y install gcc …… 已安装: gcc.x86_64 0:4.4.7-17.el6 作为依赖被安装: cloog-ppl.x86_64 0:0.15.7-1.2.el6 cpp.x86_64 0:4.4.7-17.el6 mpfr.x86_64 0:2.4.1-6.el6 ppl.x86_64 0:0.10.2-11.el6 完毕! |
---|
规划:tracker端口22189(默认22122);storage端口23089(默认23000);nginx端口8089(默认80)。
编辑防火墙配置文件vim /etc/sysconfig/iptables,允许22189、23089和8089通过,即向其中添加下图红框中的三行,然后重启防火墙。
[root@centos ~]# vim /etc/sysconfig/iptables |
---|
重启防火墙配置
[root@localhost ~]# service iptables restart
FastDFS依赖libfastcommon-master,在安装FastDFS之前应当先安装libfastcommon-master。在FastDFS源码包中的INSTALL(解压源码包后可以查看该文件,里面包含安装步骤及其他说明)文件中也可以看出应当先安装libfastcommon-master。
INSTALL文件内容部分截图如下:
1.上传libfastcommon-master.zip至/usr/softpackages,解压:
[root@centos ~]# cd /usr/softpackages/ [root@centos softpackages]# ls CentOS-6.8-x86_64-bin-DVD1.iso libfastcommon-master.zip [root@centos softpackages]# unzip libfastcommon-master.zip CentOS-6.8-x86_64-bin-DVD1.iso libfastcommon-master libfastcommon-master.zip |
---|
2.进入libfastcommon-master目录,执行make.sh编译,
[root@centos softpackages]# cd libfastcommon-master [root@centos libfastcommon-master]# ls doc HISTORY INSTALL libfastcommon.spec make.sh php-fastcommon README src [root@centos libfastcommon-master]# ./make.sh |
---|
编译时会出现如下警告,不必理会
3.编译成功后安装
[root@centos libfastcommon-master]# ./make.sh install mkdir -p /usr/lib64 mkdir -p /usr/lib install -m 755 libfastcommon.so /usr/lib64 mkdir -p /usr/local/include/fastcommon install -m 644 common_define.h hash.h chain.h logger.h base64.h shared_func.h pthread_func.h ini_file_reader.h _os_define.h sockopt.h sched_thread.h http_func.h md5.h local_ip_func.h avl_tree.h ioevent.h ioevent_loop.h fast_task_queue.h fast_timer.h process_ctrl.h fast_mblock.h connection_pool.h fast_mpool.h fast_allocator.h fast_buffer.h skiplist.h multi_skiplist.h flat_skiplist.h skiplist_common.h system_info.h fast_blocked_queue.h php7_ext_wrapper.h id_generator.h char_converter.h char_convert_loader.h common_blocked_queue.h multi_socket_client.h /usr/local/include/fastcommon |
---|
安装成功
4.完成后,libfastcommon:
库文件位置:/usr/lib64/libfastcommon.so
头文件位置:/usr/local/include/fastcommon/
编译FastDFS时,FastDFS中指定的调用libfastcommon头文件的路径是/usr/include/fastcommon,而安装libfastcommon的头文件路径是/usr/local/include/fastcommon,因此需要创建/usr/local/include/fastcommon目录到/usr/include/fastcommon的软链接:
[root@centos FastDFS]# ln -s /usr/local/include/fastcommon /usr/include/fastcommon |
---|
1.上传FastDFS_v5.08.tar.gz至/usr/softpackages,解压:
[root@centos softpackages]# ls CentOS-6.8-x86_64-bin-DVD1.iso FastDFS_v5.08.tar.gz libfastcommon-master libfastcommon-master.zip [root@centos softpackages]# tar -zxvf FastDFS_v5.08.tar.gz |
---|
2.进入FastDFS,执行make.sh编译
[root@centos softpackages]# cd FastDFS [root@centos FastDFS]# ./make.sh |
---|
3.编译成功后安装
[root@centos FastDFS]# ./make.sh install mkdir -p /usr/bin mkdir -p /etc/fdfs cp -f fdfs_trackerd /usr/bin if [ ! -f /etc/fdfs/tracker.conf.sample ]; then cp -f ../conf/tracker.conf /etc/fdfs/tracker.conf.sample; fi mkdir -p /usr/bin mkdir -p /etc/fdfs cp -f fdfs_storaged /usr/bin if [ ! -f /etc/fdfs/storage.conf.sample ]; then cp -f ../conf/storage.conf /etc/fdfs/storage.conf.sample; fi mkdir -p /usr/bin mkdir -p /etc/fdfs mkdir -p /usr/lib64 cp -f fdfs_monitor fdfs_test fdfs_test1 fdfs_crc32 fdfs_upload_file fdfs_download_file fdfs_delete_file fdfs_file_info fdfs_appender_test fdfs_appender_test1 fdfs_append_file fdfs_upload_appender /usr/bin if [ 0 -eq 1 ]; then cp -f libfdfsclient.a /usr/lib64; cp -f libfdfsclient.a /usr/lib;fi if [ 1 -eq 1 ]; then cp -f libfdfsclient.so /usr/lib64; cp -f libfdfsclient.so /usr/lib;fi mkdir -p /usr/include/fastdfs cp -f ../common/fdfs_define.h ../common/fdfs_global.h ../common/mime_file_parser.h ../common/fdfs_http_shared.h ../tracker/tracker_types.h ../tracker/tracker_proto.h ../tracker/fdfs_shared_func.h ../storage/trunk_mgr/trunk_shared.h tracker_client.h storage_client.h storage_client1.h client_func.h client_global.h fdfs_client.h /usr/include/fastdfs if [ ! -f /etc/fdfs/client.conf.sample ]; then cp -f ../conf/client.conf /etc/fdfs/client.conf.sample; fi |
---|
4.完成后,FastDFS安装位置:
配置文件:/etc/fdfs/
执行程序:/usr/bin/
头文件:/usr/include/fastdfs
配置文件说明:
v/etc/fdfs/tracker.conf.sample:服务端tracker示例配置文件
v/etc/fdfs/storage.conf.sample:服务端storage示例配置文件
v/etc/fdfs/storage.conf.sample:client客户端配置文件
1.进入/etc/fdfs/目录会看到三个.sample后缀的示例文件,我们需要把其中的tracker.conf.sample文件复制为tracker.conf配置文件并修改它。
[root@centos conf]# cd /etc/fdfs [root@centos fdfs]# ls client.conf.sample storage.conf.sample tracker.conf.sample [root@centos fdfs]# cp tracker.conf.sample tracker.conf |
---|
2.编辑# vi /etc/fdfs/tracker.conf文件,修改以下内容
port=22189 #跟踪器端口号给成22189,根据2.3端口规划进行修改,默认是22122 base_path= /home/fastdfs/tracker #该路径必须真实存在,第三步进行创建 #HTTP port on this tracker server将来下载文件的端口 http.server_port=8089 #配置nginx的端口,根据2.3端口规划修改 |
---|
3.创建tracker server数据目录,/home/fastdfs/tracker目录
[root@centos ~]# mkdir -p /home/fastdfs/tracker |
---|
1.进入/etc/fdfs/目录会看到三个.sample后缀的示例文件,我们需要把其中的storage.conf.sample文件改为storage.conf配置文件并修改它。
[root@centos fdfs]# cp storage.conf.sample storage.conf |
---|
2.编辑# vi /etc/fdfs/storage.conf文件,修改以下内容
group_name=group1 port=23089 #存储端口号修改为23089,根据2.3端口规划进行修改,默认23000 base_path=/home/fastdfs/storage #该路径必须真实存在,第三步创建 #store_path 指定存放的文件路径,可以有多个. 如:store_path0, store_path1等。 #store_path0 如果store_path0不指定,那么默认为base_path值。 #如果指定,该路径必须真实存在 store_path0=/home/fastdfs/storage #存放的文件路径,可以配置多个 #store_path1=/home/fastdfs/storage #tracker 服务器地址(局域网IP):端口, 可以指定多个。 tracker_server=10.65.12.89:22189 #本地ip+端口号,根据实际情况修改 # the port of the web server on this storage server 将来下载文件的端口。 http.server_port=8089 #配置nginx的端口,根据2.3端口规划进行修改 |
---|
3.创建storage 存放文件的目录,/home/fastdfs/storage/目录
[root@centos ~]# mkdir -p /home/fastdfs/storage/ |
---|
1.复制/etc/fdfs/client.conf.sample为/etc/fdfs/client.conf文件并编辑client.conf,修改以下内容
base_path=/home/fastdfs/tracker tracker_server=10.65.12.89:22189 #本地ip+端口号,根据实际情况修改http.tracker_server_port=8089 #配置nginx的端口,根据2.3端口规划进行修改 |
---|
[root@centos ~]# cp /usr/softpackages/FastDFS/conf/http.conf /etc/fdfs/ [root@centos ~]# cp /usr/softpackages/FastDFS/conf/mime.types /etc/fdfs/ |
---|
注意:如果缺少这两个文件,nginx在集成ngx_fastdfs_module后,将只能启动master process,而启动不了worker process,导致不能正常使用 |
1.启动fdfs_trackerd和fdfs_storaged,要先启动fdfs_trackerd,后启动fdfs_storaged
[root@centos ~]# service fdfs_trackerd start Starting FastDFS tracker server: [root@centos ~]# service fdfs_storaged start Starting FastDFS storage server: |
---|
2.查看运行状态
[root@centos ~]# ps -elf | grep -v grep | grep fdfs 1 S fastdfs 27727 1 1 80 0 - 20351 inet_c 19:06 ? 00:00:09 /usr/bin/fdfs_storaged /etc/fdfs/storage.conf 1 S fastdfs 27754 1 0 80 0 - 36207 inet_c 19:09 ? 00:00:01 /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf |
---|
3.查看Storage和Tracker是否在通信:
[root@centos ~]# /usr/bin/fdfs_monitor /etc/fdfs/storage.conf |
---|
注:关闭fdfs_storaged和fdfs_trackerd的命令如下:
[root@centos ~]# service fdfs_storaged stop [root@centos ~]# service fdfs_trackerd stop |
---|
[root@centos ~]#/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /usr/softpackages/test.txt group1/M00/00/00/wKguEluKunWARB81AAAAE1tMD1U544.txt |
---|
返回文件ID即说明文件已经上传成功,这里是将/usr/softpackages/目录中的文件“test.txt”上传到fastdfs服务器中。 |
1.上传fastdfs-nginx-module_v1.16.tar.gz源码包和nginx-1.8.1.tar.gz源码包至/usr/softpackages,解压:
[root@centos softpackages]# tar -zxvf fastdfs-nginx-module_v1.16.tar.gz [root@centos softpackages]# tar -zxvf nginx-1.8.1.tar.gz |
---|
2.修改fastdfs-nginx-module中指向libfastcommon和FastDFS头文件的路径。
/usr/softpackages/fastdfs-nginx-module/src/config文件修改前的内容如下:
三个红框部分:
v/usr/local/include/fastdfs:FastDFS头文件的路径,安装FastDFS时,安装路径是/usr/include/fastdfs,因此需要修改;
v/usr/local/include/fastcommon/:libfastcommon文件路径,安装libfastcommon时,安装路径是/usr/local/include/fastcommon,故不需要修改;
v/usr/local/lib -lfastcommon -lfdfsclient :调用lfastcommon.so 和lfdfsclient .so的路径,安装libfastcommon时,这两个文件路径是/usr/lib64,因此需要修改。
修改后的结果如下:
3.复制fastdfs-nginx-module源码中的配置文件到/etc/fdfs
/usr/softpackages/fastdfs-nginx-module/src/config文件中有如下内容(图中红框):
[root@centos ~]# cp /usr/softpackages/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/ |
---|
4.编辑/etc/fdfs/mod_fastdfs.conf
base_path=/home/fastdfs/storage tracker_server=10.65.12.89:22189 storage_server_port=23089 group_name=group1 #默认的不需要修改 url_have_group_name = true #默认false,改成true store_path0=/home/fastdfs/storage |
---|
5.创建一个软连接:在/home/fastdfs/storage/文件存储目录下创建软连接,将其链接到实际存放数据的目录。命令:ln -s /home/fastdfs/storage/data/ /home/fastdfs/storage/data/M00
[root@bogon ~]# ln -s /home/fastdfs/storage/data/ /home/fastdfs/storage/data/M00 |
---|
nginx中HTTP gzip module (HTTP gzip模块)需要的zlib库,HTTP rewrite module(HTTP重写模块)模块需要的pcre库,ssl功能需要的openssl库。检查CentOS6.8中均已安装,但是默认的版本不对,需要安装zlib-devel、pcre-devel、openssl-devel
[root@centos ~]# yum -y install zlib-devel pcre-devel openssl-devel |
---|
1.修改nginx安装配置文件以集成fastdfs-nginx-module
[root@centos softpackages]# cd nginx-1.8.1 [root@centos nginx-1.8.1]# ls auto CHANGES CHANGES.ru conf configure contrib html LICENSE man README src [root@centos nginx-1.8.1]# ./configure --add-module=/usr/softpackages/fastdfs-nginx-module/src #加载fastdfs-nginx-module模块,其他如安装路径等均默认 |
---|
[root@centos nginx-1.8.1]# make |
---|
[root@centos nginx-1.8.1]# make install |
---|
安装到了/usr/local/nginx
编辑nginx的配置文件,/usr/local/nginx/conf/nginx.conf,修改以下部分配置:
server {
listen 8089;
server_name localhost;
location /group1/M00 {
root /home/fastdfs/storage/data;
ngx_fastdfs_module;
}
1.启动,进入nginx安装目录
[root@bogon nginx]# /usr/local/nginx/sbin/nginx ngx_http_fastdfs_set pid=5275 |
---|
[root@centos ~]# ps -ef | grep nginx | grep -v grep root 2390 1 0 02:18 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginx nobody 2391 2390 0 02:18 ? 00:00:00 nginx: worker process |
master process和worker process都有才算启动成功 |
在浏览器中输入http://ip:8089看到如下内容说明启动成功:
2.关闭
[root@bogon nginx]# /usr/local/nginx/sbin/nginx -s stop |
---|
3.重载
[root@bogon nginx]# /usr/local/nginx/sbin/nginx -s reload |
---|
4.文件服务器访问路径
http://ip:8089/group1/M00/00/00/文件名 |
---|
1.设置fdfs_tracker开机自启动
首先进入/etc/rc.d/init.d/文件夹下,查看是否有fdfs_tracker文件,如果没有需要执行cp FastDFS/init.d/fdfs_trackerd /etc/init.d/ 命令将fdfs_tracker文件复制到/etc/rc.d/init.d/文件夹下。
注册fdfs_tracker服务:
[root@centos ~]# chkconfig --add fdfs_trackerd |
---|
设置fdfs_tracker服务开机自启:
[root@centos ~]# chkconfig fdfs_trackerd on |
---|
查看fdfs_tracker服务:
[root@centos ~]# chkconfig --list fdfs_trackerd |
---|
在这里我们可以看到fdfs_tracker服务中2、3、4、5为启动状态,进入/etc/rc.d/文件夹中可以看到rc0.d~rc6.d文件夹,分别对应了fdfs_tracker服务中0~6状态。
进入rc2.d~rc5.d文件夹,将里面 S99fdfs_trackerd文件重命名成S98fdfs_trackerd。
注:rc.d文件夹中rc*.d文件夹下的启动脚本都是以K**、S**为前缀的,其中的**是用来确定启动顺序的,**数字越小,服务越先启动,新注册的服务默认为S99为前缀,因此需要将S99fdfs_trackerd文件重命名成S98fdfs_trackerd保证fdfs_tracker在fdfs_storaged 之前启动。
2.设置fdfs_storaged开机自启动
首先进入/etc/rc.d/init.d/文件夹下,查看是否有fdfs_storaged文件,如果没有需要执行cp FastDFS/init.d/fdfs_storaged /etc/init.d/ 命令将fdfs_storaged文件复制到/etc/rc.d/init.d/文件夹下。
注册fdfs_storaged服务:
[root@centos ~]# chkconfig --add fdfs_storaged |
---|
设置fdfs_storaged服务开机自启:
[root@centos ~]# chkconfig fdfs_storaged on |
---|
查看fdfs_storaged服务:
[root@centos ~]# chkconfig --list fdfs_storaged |
---|
3. 设置Nginx开机自启
在linux系统的/etc/init.d/目录下创建nginx文件:
编辑nginx文件:
#!/bin/sh # # nginx - this script starts and stops the nginx daemon # # chkconfig: - 85 15 # description: NGINX is an HTTP(S) server, HTTP(S) reverse \ # proxy and IMAP/POP3 proxy server # processname: nginx # config: /etc/nginx/nginx.conf # config: /etc/sysconfig/nginx # pidfile: /var/run/nginx.pid # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network # Check that networking is up. [ "$NETWORKING" = "no" ] && exit 0 nginx="/usr/sbin/nginx" prog=$(basename $nginx) NGINX_CONF_FILE="/etc/nginx/nginx.conf" [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx lockfile=/var/lock/subsys/nginx make_dirs() { # make required directories user=`$nginx -V 2>&1 | grep "configure arguments:" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -` if [ -z "`grep $user /etc/passwd`" ]; then useradd -M -s /bin/nologin $user fi options=`$nginx -V 2>&1 | grep 'configure arguments:'` for opt in $options; do if [ `echo $opt | grep '.*-temp-path'` ]; then value=`echo $opt | cut -d "=" -f 2` if [ ! -d "$value" ]; then # echo "creating" $value mkdir -p $value && chown -R $user $value fi fi done } start() { [ -x $nginx ] || exit 5 [ -f $NGINX_CONF_FILE ] || exit 6 make_dirs echo -n $"Starting $prog: " daemon $nginx -c $NGINX_CONF_FILE retval=$? echo [ $retval -eq 0 ] && touch $lockfile return $retval } stop() { echo -n $"Stopping $prog: " killproc $prog -QUIT retval=$? echo [ $retval -eq 0 ] && rm -f $lockfile return $retval } restart() { configtest || return $? stop sleep 1 start } reload() { configtest || return $? echo -n $"Reloading $prog: " killproc $nginx -HUP RETVAL=$? echo } force_reload() { restart } configtest() { $nginx -t -c $NGINX_CONF_FILE } rh_status() { status $prog } rh_status_q() { rh_status >/dev/null 2>&1 } case "$1" in start) rh_status_q && exit 0 $1 ;; stop) rh_status_q || exit 0 $1 ;; restart|configtest) $1 ;; reload) rh_status_q || exit 7 $1 ;; force-reload) force_reload ;; status) rh_status ;; condrestart|try-restart) rh_status_q || exit 0 ;; *) echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}" exit 2 esac |
---|
注:nginx=”/usr/sbin/nginx” 修改成nginx执行程序的路径。
/usr/local/nginx/sbin/nginx
NGINX_CONF_FILE=”/etc/nginx/nginx.conf” 修改成配置文件的路径。
保存脚本文件后设置文件的执行权限:
[root@centos ~]# chmod a+x /etc/init.d/nginx |
---|
[root@centos ~]# chkconfig --add nginx
设置nginx服务开机自启:
[root@centos ~]# chkconfig nginx on |
---|
设置完成后使用reboot命令重启,查看设置是否成功。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。