Ubuntu 搭建文件服务器(Nginx)

news2024/9/22 9:42:54

1,下载Nginx

2,安装Nginx

3,Nginx指令及脚本使用

4,配置Nginx

1,下载Nginx

①去官网下载对应的Nginx版本

nginx: download

②直接在ubuntu使用指令下载

wget http://nginx.org/download/nginx-1.23.3.tar.gz

2,编译和软件安装

解压

tar zxvf nginx-1.23.3.tar.gz

编译安装

cd nginx-1.23.3

配置Nginx安装位置以及ssl证书

./configure --prefix=/usr/nginx --with-http_ssl_module

编译与安装

make

make install 

3,Nginx的指令,开启,查询和关闭等

①验证:(cd 安装位置)

cd /usr/nginx/sbin

./nginx -t

 如图所示说明配置成功

打开:

sudo ./nginx

 ②查看Nginx服务的当前情况:

ps -ef | grep nginx

 ③关闭Nginx服务:

根据查找到的pid进行关闭;即

普通关闭指令:

kill -15 进程号

强制关闭指令:

kill -9 进程号

根据上图查找到的pid为6211,使用普通关闭方法

kill -15 6211

④重新加载配置文件

cd /usr/nginx/sbin

./nginx -s reload

⑤重启Nginx服务

方法一:

cd /usr/nginx/sbin

./nginx -s reopen

方法二:

kill -1 进程号

⑥Nginx版本查看

cd /usr/nginx/sbin

./nginx -v

4,编写Nginx的系统脚本

在ubuntu里面,在/etc/init.d文件夹里面有许多系统服务的启动和停止脚本。Nginx主要参照它们的脚本搞就好了。

cd /etc/init.d

touch nginx

将下边的代码全部写入nginx里面

#!/bin/sh

### BEGIN INIT INFO
# Provides:     nginx
# Required-Start:
# Required-Stop:
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description: nginx
# Description: nginx server
### END INIT INFO


PROGRAM=/usr/nginx/sbin/nginx
PID=/usr/nginx/logs/nginx.pid


case "$1" in
  start)
     echo "Starting Nginx server"
     $PROGRAM && echo "SUCCESS" #开启Nginx
   ;;
  stop)
     PIDTXT=`cat $PID`
     echo "Stopping Nginx server"
     if [ ! -z "$PIDTXT" ]; then
        kill -15 $PIDTXT
     fi
     echo "SUCCESS"
   ;;
  reload)
     echo "Reload nginx server"
     $PROGRAM -s reload
     echo "SUCCESS"
   ;;
  status)
     if [! -f "$PID"];then
         echo "Nginx is not running..."
      else
         echo "Nginx is running..."
      fi
   ;;
   *)
     echo "Usage: service nginx {start|stop|reload|status}"
     exit 1
   ;;
esac

exit 0

 调整nginx权限:

chmod +x nginx

!!!记得不要直接从外边copy进去,不然会出现用户名不对而导致的错误。

 使用脚本后

开启:

service nginx start

关闭:

service nginx stop

重新加载:

service nginx reload

到这里,nginx安装部署基本完成。

4,配置Nginx

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    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  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       80;
        # server_name  localhost;
	    server_name _;	

        charset utf-8; # 中文名的文件不乱码
	
        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   /home/xxxx/Desktop/xxxx/file;  # 文件所放的路径
            index  index.html index.htm;
	        autoindex on;       # 显示目录
	        autoindex_exact_size on;    # 显示文件大小
            autoindex_localtime on;     # 显示文件时间
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }


    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}


    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

}

主要修改root 文件所放的路径,还有文本显示属性之类的

配置完之后输入ubuntu的ip地址得到结果如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/392954.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网上赚钱的兼职有哪些,互联网兼职什么挣钱多?

2023年,大投资的创业并不适合普通人,而小投资的创业形式,轻资产创业也需要资金,所以,很多人考虑到了兼职赚钱,那么,网上赚钱的兼职有哪些,互联网兼职做什么挣钱比较多呢?…

DHCP Snooping讲解

DHCP Snooping时DHCP的一种安全特性,用于保证DHCP客户端从合法的DHCP服务器获取IP地址,并记录DHCP客户端IP地址与MAC地址等参数的对应关系,防止网络上针对DHCP攻击 通过配置信任端口和非信任端口来实现安全防护 信任接口 正常接收DHCP服务器响…

网络安全之暴力破解介绍及暴力破解Tomcat

网络安全之暴力破解介绍及应用场景一、暴力破解介绍1.1 暴力破解介绍1.2 暴力破解应用场景一、暴力破解Tomcat一、暴力破解介绍 1.1 暴力破解介绍 暴力破解字典:https://github.com/k8gege/PasswordDic 1.2 暴力破解应用场景 一、暴力破解Tomcat 登录Tomcat后台&a…

重磅通知!OpenAI又放大招:官宣开放API接口-3.5版本 需求大涨,机遇与挑战并存,谁能拔得头筹?

3月2日,在各大论坛网站霸榜了一个多月,ChatGPT相关话题的热度仍高居不下。这边热度未歇,那边研发ChatGPT的人工智能公司又在互联网上投下一颗重磅“炸弹”:OpenAI在其官方博客宣布,将开放ChatGPT和Whisper的模型API。 …

代码分享:面波数据快速成图

代码分享:面波数据快速成图 前言 目前,物探数据主要用surfer软件成图,surfer软件具有强大的插值和绘图功能,成图比较美观。但是,生产过程中大量的物探数据,依靠excel和surfer来成图耗费人力时间成本。本博…

UML视图—用例图、顺序图、状态图、类图、包图、协作图

大家好,欢迎来到Doker,这是一篇架构设计的基础文章。面向对象的问题的处理的关键是建模问题。建模可以把在复杂世界的许多重要的细节给抽象出。许多建模工具封装了UML(也就是Unified Modeling Language™),这篇课程的目…

Linux25 -- 监听队列链接上限测试、命令uname、ulimit

一、监听队列链接上限测试 1、res listen(sockfd,5); //创建监听队列res listen(sockfd,5);不懂版本有不同的限制,2.6早期版本有限制为128,超过默认为128,可使用uname -a 查看版本 2、测试将链接数到达上限, 方法&#xff1…

【安卓开发】探究服务

10.2 Android多线程编程 定义一个线程只需要新建一个类继承自Thread,然后重写父类的run方法,在里面编写耗时逻辑即可 class MyThread extends Thread{Overridepublic void run(){// 处理具体的逻辑} }那么如何启动呢 new Mythread().start() 这样继承的…

Hive拉链表

概述 拉链表:维护历史状态以及最新状态数据的表 作用场景 1. 数据量比较大。 2. 表中的部分字段会被更新,比如用户的地址,银行利率,订单的状态等。 3. 需要查看某一个时间点或者时间段的历史快照信息,比如,…

Linux GCC 编译详解

文章目录一、GCC 编译器简介二、GCC 工作流编程语言的发展GCC 工作流程gcc 和 g 的区别三、使用 GCC 编译GCC 编译格式GCC 编译流程多个源文件编译一、GCC 编译器简介 首先,什么是编译器呢? 我们可以使用编辑器(如 linux 下的 vi、windows 下…

Tomcat安装步骤及详细配置教程

Tomcat安装及配置教程主要分为四步: 步骤一:首先确认自己是否已经安装JDK 步骤二:下载安装Tomcat 步骤三:Tomcat配置环境变量 步骤四:验证Tomcat配置是否成功 一、首先确认自己是否已经安装JDK WinR打开运行&…

sklearn手册(持续更新ing...)

诸神缄默不语-个人CSDN博文目录 本文是一个随时使用sklearn时可供参考的手册。我有使用sklearn的基础,且准备后期直接用sklearn官方的教程文档参考撰写系统性学习sklearn包使用方法的sklearn用户教程一文,因此本文就不介绍基础了。 最近更新时间&#…

ubuntu 20.04 Linux下查看当前文件夹的大小

问题描述 由于使用远程的 ssh 连接 ubuntu 20.04,所以不清楚如何查看 当前文件夹的大小 直接使用 df -h,只能查看 当前系统 磁盘的使用情况 需求 通过Linux shell 命令行,查看 当前文件夹占用的大小 其实很简单,使用 Linux sh…

如何使用码匠连接 Oracle

目录 在码匠中集成 Oracle 在码匠中使用 Oracle 关于码匠 Oracle 是一种关系型数据库,可用于存储和管理大量结构化数据。Oracle 数据源支持多种操作系统,包括 Windows、Linux 和 Unix 等,同时也提供了各种工具和服务,例如 Orac…

从设计转到了产品,实习生工作复盘

一、写在前面从设计转到了产品,产品的门槛好像相对于设计确实要低一些。通过产品新人必读书《人人都是产品经理》、知乎产品大神的观点和我个人的理解,可以得出一个结论——并不是每个人都是合格的产品经理,包括我在内的很多人都是因为公司有…

​2023年湖北武汉自己怎么报考二建?报考二建学历不符怎么办?启程别

2023年湖北武汉自己怎么报考二建?报考二建学历不符怎么办?启程别 2023年武汉自己怎么报考二建,首先个人是没有办法报名的,报考二建必须以企业的名义报名。报考二建的基本条件是什么?启程别告诉你,“启程别”…

Spark AQE

Spark AQEAQE/RBO/CBOAQEAQE特点Join 策略调整自动分区合并自动倾斜处理Spark 3.0 添加了自适应查询执行(AQE)、动态分区剪裁(DPP)、扩展的 Join Hints AQE/RBO/CBO Spark SQL 2.0前,仅支持启发式、静态的优化过程。…

mybatis面试题 一

一、MyBatis工作原理? 1、 创建SqlSessionFactory 2、 通过SqlSessionFactory创建SqlSession 3、 通过sqlsession执行数据库操作 4、 调用session.commit()提交事务 5、 调用session.close()关闭会话 1)读取 MyBatis 配置文件:mybatis-c…

zynq7000系列芯片介绍

ZYNQ从架构上可以划分为两大模块,一个是PS(处理器系统),另一个是PL(可编程逻辑) PS由APU、内存接口、IO外设、互连线4大模块组成。 1、APU(Application Processor Unit)应用处理单元 即PS【可编…

面向对象设计模式:行为型模式之状态模式

文章目录一、引入二、状态模式2.1 Intent 意图2.2 Applicability 适用性2.3 类图2.4 Collaborations 合作2.5 Implementation 实现2.5 状态模式与策略模式的对比2.5 状态模式实例:糖果机2.6 状态模式实例:自行车升降档一、引入 State Diagram 状态图&am…