CentOS用nginx搭建文件下载服务器
创始人
2025-01-19 20:02:51
0

  Nginx 是开源、高性能、高可靠的 Web 和反向代理服务器,而且支持热部署,几乎可以做到 7 * 24 小时不间断运行,即使运行几个月也不需要重新启动。在工作中,我们经常会用到需要搭建文件服务器的情况,这里就以在linux下搭建文件服务器为例,解释编译nginx和搭建服务器的过程。

一、nginx编译安装

1、下载nginx

  • nginx下载网站
  • wget下载命令
wget http://nginx.org/download/nginx-1.25.2.tar.gz 

2、解压压缩包

tar -zxvf nginx-1.25.2.tar.gz 

3、创建用户和用户组

useradd -M -s /sbin/nologin nginx 

4、编译安装nginx

 # 依次执行下面命令 cd nginx-1.25.2  ./configure \ --prefix=/usr/local/nginx \ --user=nginx \ --group=nginx \ --without-http_rewrite_module \ --without-http_gzip_module   make && make install  #让系统识别nginx的操作命 ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/		 

如果在编译过程中报错需要依赖包,执行以下命令安装依赖

#nginx的配置及运行需要pcre、zlib、openssl等软件包的支持,因此需要安装这些软件的开发包,以便提供相应的库和头文件。 yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++ make 

依赖安装完成重新执行./configure命令

5、检查、启动、重启、停止 nginx服务的命令

nginx -t								#检查配置文件是否配置正确 #启动 nginx									 #停止 cat /usr/local/nginx/logs/nginx.pid		#先查看nginx的PID号 kill -3  kill -s QUIT  killall -3 nginx killall -s QUIT nginx #重载 kill -1  kill -s HUP  killall -1 nginx killall -s HUP nginx #日志分割,重新打开日志文件 kill -USR1  #平滑升级 kill -USR2 

在这里插入图片描述

二、配置nginx文件下载服务器

1、配置nginx.conf文件

  • 到nginx.conf文件目录
cd  /usr/local/nginx/conf/ 
  • 先备份nginx.cong文件
cp nginx.conf nginx.conf_bak 
  • 编辑/usr/local/nginx/conf/nginx.conf文件,
    将 user nobody 改成:user root并取消注释
    在这里插入图片描述
    配置以下部分
    # 显示目录     autoindex on;     # 显示文件大小     autoindex_exact_size on;     # 显示文件时间     autoindex_localtime on;     # 防止中文乱码     charset utf-8;         server {         listen       8888;         #配置了监听端口此条不生效         server_name  localhost;         #文件服务器本地存储路径         root /root/nginx_storge;     } 

在这里插入图片描述

  • 创建/root/nginx_storge文件夹
mkdir /root/nginx_storge 

2、检查并启动nginx

# 检查nginx配置 nginx -t #启动nginx nginx -c /usr/local/nginx/conf/nginx.conf #重载nginx nginx -s reload 

在这里插入图片描述

3、测试下载

在cd /root/nginx_storge/中新建几个文件和文件夹
在这里插入图片描述
在浏览器中输入地址:http://192.168.86.129:8888/(根据自己的ip修改)可以看到文件信息,点击文件可以下载
在这里插入图片描述

三、自动启动nginx的启动脚本

  在实际的工作中,我们需要在不同的地方启动nginx,这种情况下,我们就可以通过自定义脚本的方式来实现该功能。下面我们就以一个视频下载为例来简单说明内容的写法。

1 目录接口

我们首先需要创建一个目录,目录的命名不重要,可以按照各自的业务来,因为脚本是按照相对路径来的,用的时候只需要将该文件夹直接拷贝过去,就可以直接执行,文件夹中的内容结构如下:

---- server.conf #下载路径相关的配置
---- start.sh #执行脚本
---- nginx #nginx相关的文件夹
-------- conf
------------ nginx.conf #nginx的配置文件
-------- logs
------------ access.log #访问日志文件 ,一开始只需要创建一个空文件即可
------------ error.log #错误日志文件 ,一开始只需要创建一个空文件即可
------------ nginx.pid #pid文件 ,一开始只需要创建一个空文件即可

2、server.conf内容

server.conf是配置文件,主要是下载的端口和服务器上面下载文件的绝对路径

recordVideoDownloadPord=8888 recordVideoDownloadRootPath=/home/filePath 

3、nginx.conf内容

nginx.conf是nginx配置文件的模板,里面是主要的配置框架,实际内容会在执行start.sh时根据配置替换

user  root; worker_processes  1;  error_log /usr/local/nginx/logs/error.log  info;  pid        /usr/local/nginx/logs/nginx.pid;   events {     worker_connections  1024; }   http {     default_type  application/octet-stream;      log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '                       '$status $body_bytes_sent "$http_referer" '                       '"$http_user_agent" "$http_x_forwarded_for"';      access_log /usr/local/nginx/logs/access.log  main;      sendfile        on;     #tcp_nopush     on;      #keepalive_timeout  0;     keepalive_timeout  65;      #gzip  on;         # 显示目录     autoindex on;     # 显示文件大小     autoindex_exact_size on;     # 显示文件时间     autoindex_localtime on;     # 防止中文乱码     charset utf-8;       server {         listen 8888;         #配置了监听端口此条不生效         server_name  localhost;         #文件服务器本地存储路径         root /home/filePath;          access_log /usr/local/nginx/logs/access.log  main;      #    ssl_certificate      cert.pem;     #    ssl_certificate_key  cert.key;     }    } 

4、start.sh文件

#!/bin/bash  local_path=$(pwd) echo "localPath: $local_path"  nginx_error_log="$local_path/nginx/logs/error.log  info" nginx_pid="$local_path/nginx/logs/nginx.pid" nginx_access_log="$local_path/nginx/logs/access.log  main" nginx_config_file="$local_path/nginx/conf/nginx.conf"    #get config   port=`sed '/^recordVideoDownloadPord=/!d;s/.*=//' $local_path/server.conf` root_path=`sed '/^recordVideoDownloadRootPath=/!d;s/.*=//' $local_path/server.conf`              echo "read config port : $port"  echo "read config root : $root_path"  #replace nginxConfigFile sed -i  "s|error_log .*;$|error_log ${nginx_error_log};|g" $nginx_config_file sed -i  "s|access_log .*;$|access_log ${nginx_access_log};|g" $nginx_config_file sed -i  "s|pid .*;$|pid        ${nginx_pid};|g" $nginx_config_file sed -i  "s|listen .*;$|listen ${port};|g" $nginx_config_file  sed -i  "s|root .*;$|root ${root_path};|g" $nginx_config_file       #stop already started nginx if [ -f "$nginx_pid" ]; then     pid=$(cat $nginx_pid)     if  ps -p $pid  > /dev/null     then          echo "nginx is running pid=$pid, begin stop nginx "         kill -3 $pid     fi fi  echo "begin start nginx" /usr/local/nginx/sbin/nginx -c $nginx_config_file  

5、启动项目

首先需要在nginx/logs下面新建nginx.pid文件,执行命令如下

touch nginx/logs/nginx.pid 

将server.conf配置好后,执行start.sh文件,就可以启动项目,每次重启也只需要执行start.sh文件即可。

./start.sh 

后记
  个人总结,欢迎转载、评论、批评指正

相关内容

热门资讯

黑科技科技!wepoke软件透... 黑科技科技!wepoke软件透明挂价格,wepower透视辅助,透牌教程(其实是真的有挂);小薇(透...
透视辅助!微扑克辅牌器,(wp... 透视辅助!微扑克辅牌器,(wpk微扑克)好像有挂,分享教程(有挂脚本)1、打开软件启动之后找到中间准...
黑科技辅助挂!wPK透视辅助,... 黑科技辅助挂!wPK透视辅助,(wpK)总是是有挂,可靠技巧(有挂神器)亲,关键说明,wpK赛季回归...
wepoke透明黑科技(wep... wepoke透明黑科技(wepoke)wepoke好友助力(黑科技)玩家教你(真是真的有挂)wepo...
黑科技代打!wepoke透明挂... 黑科技代打!wepoke透明挂怎么识别,wepoke软件透明是真的吗,AI教程(固有是有挂)准备好在...
透视ai代打!wpk透视挂会被... 透视ai代打!wpk透视挂会被封号吗,(WPK)果然是有挂,普及教程(有挂插件)1、wpk透视挂会被...
黑科技辅助挂!德州aa扑克透明... 黑科技辅助挂!德州aa扑克透明挂辅助是有挂,(aAPOKER)详细辅助透明挂教程(有挂攻略);所有人...
Wpk辅助器(wpK)wpk微... Wpk辅助器(wpK)wpk微扑克真的有辅助吗(透视)AI教程(总是真的有挂);1、进入游戏-大厅左...
黑科技插件!红龙扑克真假,智星... 黑科技插件!红龙扑克真假,智星德州菠萝app下载,黑科技教程(其实是真的有挂)1、点击下载安装,微扑...
苹果版辅助挂!智星德州菠萝开挂... 苹果版辅助挂!智星德州菠萝开挂,(智星德州)好像是真的有挂,曝光教程(有挂介绍)苹果版辅助挂!智星德...