论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
主机系统
›
linux
›
CentOS用nginx搭建文件下载服务器
CentOS用nginx搭建文件下载服务器
立聪堂德州十三局店
金牌会员
|
2024-6-8 09:35:42
|
显示全部楼层
|
阅读模式
楼主
主题
850
|
帖子
850
|
积分
2550
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 <PID号>
kill -s QUIT <PID号>
killall -3 nginx
killall -s QUIT nginx
#重载
kill -1 <PID号>
kill -s HUP <PID号>
killall -1 nginx
killall -s HUP nginx
#日志分割,重新打开日志文件
kill -USR1 <PID号>
#平滑升级
kill -USR2 <PID号
复制代码
二、设置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
复制代码
后记
个人总结,欢迎转载、批评、批评指正
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
正序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
发新帖
回复
立聪堂德州十三局店
金牌会员
这个人很懒什么都没写!
楼主热帖
零信任介绍
哈夫曼应用
WPF开发随笔收录-获取软件当前目录的坑 ...
【iOS逆向与安全】frida-trace入门 ...
《微信小程序-基础篇》什么是组件化以 ...
计算机等级考试二级C语言上机题集(第1 ...
K8S 1.20 弃用 Docker 评估之 Docker C ...
django使用多个数据库实现
Go语言上手(三) | 青训营笔记 ...
《数据库》第1章 数据库系统概论 ...
标签云
挺好的
服务器
快速回复
返回顶部
返回列表