首页服务器nginx搭建文件服务器 docker 搭建文件服务器

nginx搭建文件服务器 docker 搭建文件服务器

编程之家2023-10-2390次浏览

大家好,感谢邀请,今天来为大家分享一下nginx搭建文件服务器的问题,以及和docker 搭建文件服务器的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!

nginx搭建文件服务器 docker 搭建文件服务器

一、服务器从零到一——Ubuntu搭建nginx静态服务器

Ubuntu 18.04上的Nginx默认启用了一个服务器模块,该模块被配置为在/var/www/html目录下提供文档。虽然这适用于单个站点,但如果您托管多个站点,它可能会变得很笨重。我们不必修改/var/www/html,而是在/var/www为我们的 example.com网站创建一个目录结构,并将/var/www/html保留为默认目录,如果客户端请求没有匹配任何其他网站。

按如下所示为example.com创建目录,使用-p标志创建任何必需的父目录:

$ sudo mkdir-p/var/www/ example.com/html

nginx搭建文件服务器 docker 搭建文件服务器

接下来,使用$USER环境变量分配目录的所有权:

USER:$USER/var/www/ example.com/html/

如果你没有修改你的umask值,你的web根目录的权限应该是正确的,但是你可以通过输入:

nginx搭建文件服务器 docker 搭建文件服务器

$ sudo chmod-R 755/var/www/ example.com/

接下来,使用gedit或您最喜欢的编辑器创建一个index.html页面示例:

$ gedit/var/www/ example.com/html/index.html

在里面,添加下面的示例HTML:

<html>

<head>

<title>Welcome to Example.com!</title>

</head>

<body>

<h1>Success! The example.com server block is working!</h1>

</body>

</html>

为了让Nginx提供这些内容,有必要创建一个具有正确指令的服务器块。我们不要直接修改默认配置文件,而是在/etc/nginx/sites-available/ example.com上创建一个新文件:

$ sudo gedit/etc/nginx/sites-available/example.com

粘贴到以下配置块中,该块类似于默认值,但已更新为我们的新目录和域名:

server{

listen 80;

listen [::]:80;

}

请注意,我们已将root配置更新到我们的新目录,并将server_name为我们的域名。

接下来,让我们通过创建一个链接到启动sites-enabled目录来启用该文件,该目录是Nginx在启动过程中读取的:

$ sudo ln-s/etc/nginx/sites-available/example.com/etc/nginx/sites-enabled/

现在启用两个服务器模块并将其配置为基于listen和server_name指令响应请求(您可以阅读关于Nginx如何处理这些指令的更多信息):

example.com:将响应 example.com和 www.example.com请求。

default:将响应端口80上与其他两个块不匹配的任何请求。

为了避免添加额外的服务器名称可能导致的哈希桶内存问题,有必要调整/etc/nginx/nginx.conf文件中的单个值。

打开文件:sudo gedit/etc/nginx/nginx.conf

找到server_names_hash_bucket_size指令并删除#符号以取消注释该行:

...

http{

...

server_names_hash_bucket_size 64;

...

}

...

接下来,测试以确保您的Nginx文件中没有语法错误:

$ sudo nginx-t

nginx: the configuration file/etc/nginx/nginx.conf syntax is ok

nginx: configuration file/etc/nginx/nginx.conf test is successful

如果没有任何问题,请重新启动Nginx以启用您的更改:

$ sudo systemctl restart nginx

熟悉重要的Nginx文件和目录

nginx服务器配置文件:

/etc/nginx:Nginx配置目录。所有的Nginx配置文件都驻留在这里。

/etc/nginx/nginx.conf:主要的Nginx配置文件。这可以修改,以更改Nginx全局配置。

/etc/nginx/sites-available/:可存储每个站点服务器块的目录。除非将Nginx链接到sites-enabled了sites-enabled目录,否则Nginx不会使用此目录中的配置文件。通常,所有服务器块配置都在此目录中完成,然后通过链接到其他目录启用。

/etc/nginx/sites-enabled/:存储启用的每个站点服务器块的目录。通常,这些是通过链接到sites-available目录中的配置文件创建的。

/etc/nginx/snippets:这个目录包含可以包含在Nginx配置其他地方的配置片段。可重复配置的片段可以重构为片段。

nginx服务器日志文件:

/var/log/nginx/access.log:除非Nginx配置为其他方式,否则每个对您的Web服务器的请求都会记录在此日志文件中。

/var/log/nginx/error.log:任何Nginx错误都会记录在这个日志中。

docker 搭建文件服务器

version:'3'//docker-compose版本 3.x

services: //服务的配置信息

    FileServer://自己定义的服务

        image: nginx:latest //使用的镜像名

        container_name:'FileData'// docker容器名

     restart: always//重启策略 always总是重新启动

        ports:-'8003:8003' //映射端口信息 宿主端口:容器端口

        volumes:// 定义了卷信息,提供给 services中的具体容器使用

            -'./nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf'//用户自己指定的目录:映射目录

            -'./nginx/log:/var/log/nginx'

            -'./file:/usr/share/nginx/file'

            -'./web:/usr/share/nginx/html'  //其他html连接目录

        command:/bin/bash-c"nginx-g'daemon off;'" //覆盖容器启动后默认执行的命令

autoindex on;//是否显示文件目录 on显示  off关闭显示

autoindex_exact_size on;//显示文件确切大小 on显示字节单位 off 显示出文件的大概大小,单位是KB或者MB或者GB

autoindex_localtime on;//默认为off,显示的文件时间为GMT时间;改为on后,显示的文件时间为文件的服务器时间

charset utf-8,gbk;//显示的字符集

server{//服务配置

   listen 8003;//监听端口,也可以加上IP地址,如,listen 127.0.0.1:8080;

   server_name _;//定义网站域名,可以写多个,用空格分隔。

  //匹配规则,在server{}里可以有很多location配置段

  //root/alias是指定文件路径的两种方式 alias相当于重定向路径

    //使用alias,目录名后面一定要加“/”

    location/{//location后面跟的搜索路径

        root/usr/share/nginx/file;//指定文件服务地址这里的目录是 yml文件里配置的映射目录

    }

    location/web/{ 

     alias/usr/share/nginx/;//多个location的时候这里只需要指定映射目录的上级目录就行了

     index index.html index.htm;//配置默认首页

  }

}

java 怎么向nginx web服务器传输文件

搭建项目部署的环境

购买服务器

首先需要去阿里云购买服务器。本人购买的是Windows Server 2008,刚开始购买了基于Linux的各种系统(Ubuntu、CentOS、AliyunLinx、Debian),由于没有Linux操作基础,最后都没有鼓捣成功,还是先用Windows Server练练手,等了解了大体流程之后在迁移到Linux上。这是我购买的阿里云ECS实例

2

之后使用Windows操作系统自带的“远程桌面连接”工具直接连接到远程服务器:

连接成功之后就会进入到熟悉的Windows操作系统的桌面了,之后就可以安装各种部署的软件,如JDK、MySQL Database、Tomcat等常用的工具,和在本机上操作并无不同。

3

购买域名

服务器可以正常访问了,那么接下来就需要购置一个域名,通过域名即可跳转到相应的服务器IP,进而让所有的人都可以访问。

由于我的服务器是在阿里云购买的,阿里云和万网合并了,那么直接在阿里云中就可以一站式搞定。

4

stevejrong.top即我购买的域名。

选择一个域名后,点击“解析”以将域名映射到刚才开通的服务器上:

这里万网做了详细的介绍,在此就不多讲如何映射了。

5

域名备案

要想真正让所有人都能访问网站,那么就需要备案。由于服务器是在阿里云购置的,而阿里云和万网的服务现在已经合并,所以可以轻松申请备案。

部署项目

域名和服务器都准备好了,那么现在可以发布项目了。

这里我采用了Nginx反向代理服务器和Tomcat容器组合共同来支撑整个网站的运行。Nginx负责拦截并转发客户端发来的请求,它并不做页面的解析等工作,这些工作都交给Tomcat去处理,因为Nginx擅长处理请求,是一个高性能的反向代理服务器,它几乎没有处理Servlet请求的能力,所以要配合一个能够处理Servlet的容器共同协作,当然,Servlet容器有很多,如Resin、JBoss、Tomcat、GlassFish等等,选择Servlet容器就因人而异了,看自己喜欢用什么,还有一些适应的场景和环境。没有最好的,只有最适合的。Tomcat也未必最垃圾,只是看操作者的水平,能否合理优化是一个难题

安装和配置Nginx

解压后得到如下几个文件和文件夹:

打开conf目录下的nginx.conf文件,这个文件是Nginx服务器的配置文件:

配置代码和解释如下:

#user nobody;

#工作进程数

worker_processes 2;

#错误日志

#error_log logs/error.log;

#error_log logs/error.log notice;

#error_log logs/error.log info;

#进程保存文件

#pid logs/nginx.pid;

#等待事件

events{

#每个进程的最大连接数(最大连接数=连接数*进程数)

worker_connections 2048;

}

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压缩支持

#gzip on;

#第一个虚拟主机

server{

#监听到的端口

listen 80;

#主机名称

server_name www.stevejrong.top;

#设置字符编码格式

#charset koi8-r;

#本地虚拟主机的访问日志

#access_log logs/host.access.log main;

如果你还想了解更多这方面的信息,记得收藏关注本站。

代理服务器主机名,代理主机名是什么服务器机柜厂商?买服务器机柜什么牌子好