目标:想将自己的一些文件放到服务器上,然后谁都能下载,由于不懂这方面,所以跟着网上教程走,但是还是踩了好多坑.这里再梳理一下.
首先肯定是要有个自己的云服务器.
然后开始搭建 web服务器.这里我是跟着一个教程走的,用的是 nginx.
链接:Http服务器搭建-CSDN博客
怕博主删了,这里转载一下.
搭建web服务器
1.查看步骤
安装nginx软件: nginx是web服务器软件,可以用来搭建网站https://nginx.org/en/linux_packages.html(这个网站是官方网站,有安装的步骤)
2.操作
第1步: 安装yum-utils工具
[root@localhost dhcp]# sudo yum install yum-utils
第2步: 新建文件用于存放安装源 (ps:事实上这一步我完全不知道是什么意思,没有做这一步...)
[root@localhost dhcp]# vim /etc/yum.repos.d/nginx.repo 路径不要错了
[nginx-stable] name=nginx stable repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=1 enabled=1 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true[nginx-mainline] name=nginx mainline repo baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/ gpgcheck=1 enabled=0 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true
将这一块复制粘贴进nginx.repo 文本文件
第3步: 安装nginx
root@localhost dhcp]# yum install nginx -y
第4步: 启动nginx并且设置开机自启
1 [root@localhost dhcp]# service nginx start 2 Redirecting to /bin/systemctl start nginx.service 3 [root@localhost dhcp]# ps aux|grep nginx 4 root 17681 0.0 0.0 49064 1160 ? Ss 15:21 0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf 5 nginx 17682 0.0 0.0 49460 1900 ? S 15:21 0:00 nginx: worker process 6 nginx 17683 0.0 0.0 49460 1900 ? S 15:21 0:00 nginx: worker process 7 root 17685 0.0 0.0 112824 980 pts/0 S+ 15:21 0:00 grep --color=auto nginx 8 [root@localhost dhcp]# netstat -anplut|grep nginx 9 tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 17681/nginx: master
可以看到nginx监听了80端口
设置开机自启
[root@localhost dhcp]# systemctl enable nginx
第5步: 设置防火墙规则,开放80和443端口
设置firewalld防火墙规则,开放http服务,对应的端口号是80 [root@localhost dhcp]# firewall-cmd --add-service=http --permanent success
第六步:查看设置的规则
必须先重新加载firewalld规则 [root@localhost dhcp]# firewall-cmd --reload success [root@localhost dhcp]# firewall-cmd --list-all public (active) target: default icmp-block-inversion: no interfaces: ens33 sources: services: dhcp dhcpv6-client http ssh ###这里就多了一个http ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
第6步: 测试,访问web服务
查看自己的ip地址,从windows里访问 (ps: 这里他说的从windows里访问,我不知道是不是说从本机电脑上访问,但是我是直接在服务器里执行的这个,而且这里有个问题,他显示在那里的那个ip地址好像并不是公网IP,用那个网址不行,得用公网IP才行)
[root@localhost dhcp]# ip add 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope hostvalid_lft forever preferred_lft forever 2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:0c:29:33:d9:c8 brd ff:ff:ff:ff:ff:ffinet 192.168.203.201/24 brd 192.168.203.255 scope global noprefixroute dynamic ens33valid_lft 1769sec preferred_lft 1769secinet6 fe80::c348:5575:d46e:777e/64 scope link noprefixroutevalid_lft forever preferred_lft forever [root@localhost dhcp]#在浏览器里输入下面的网址,就可以访问 http://192.168.203.201/
测试结果如图
3.插入图片
第一步:进入首页文件 (这里遇到个问题, 用 vim 文本编辑器的时候不清楚操作,也抠了半天脑壳...具体用法可以网上查一下)
进入nginx的存放网页文件的目录index.html 是我们访问网站的时候,看到的第1个页面 [root@localhost dhcp]# cd /usr/share/nginx/html/ [root@localhost html]# ls 50x.html index.html [root@localhost html]# vim index.html 修改index.html 首页文件
修改title、hl
效果如图 (ps: 我在这里遇到一个问题,就是修改了 title 之后,这个页面并没有什么变化,然后来来去去弄了好久都不行,后来发现还要修改 hl, 但是这时修改了 hl 也没效果,然后东搞西搞,搞到 nginx 的配置文件去了,结果配置文件被我改了什么不知道, nginx 启动都启动不了,然后我在网上找了个 当前版本的默认配置文件(我会放在后面),才终于又能启动了, 然后这时候我修改了 index.html 里的 title跟hl 后发现效果实现了,emmm...不明白问题出在哪里...只能记录下这个历程 - -)
第二步:装软件传图片
上传图片feng.jpg和wen.jpg到linux系统里的/usr/share/nginx/html/目录 (这一步应该是让服务器能够跟自己的电脑传输文件,我用的是 Xftp 这个软件,在自己的电脑上安装,然后连接上服务器就好了,很好用,简单又方便,所以这一步我就跳过了)
[root@localhost html]# yum install lrzsz -y ##这个软件和Xftp一样可以传文件
[root@localhost html]# rz ##装完后输入rz
点击打开以后会默认传送到当前目录上
[root@localhost html]# pwd /usr/share/nginx/html [root@localhost html]# ls 50x.html feng.jpg index.html [root@localhost html]# ls 50x.html feng.jpg index.html wen.jpg
第三步: 加入图片
在p标签下边加入一下代码,同时限定长度<img src=feng.jpg width="400">
第四步:测试
再Ping一下在浏览器里输入下面的网址,就可以访问
http://192.168.203.201/
说明以及制作好网站了(静态网页:固定文字固定图片)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
好了,以上就是关于 nginx 的部署, 看起来还是很简单的,但是对于我这个不懂的来说,折磨了好久.
走到这里,我以为就可以把文件传到服务器里然后供人下载了, 试了一下,结果发现不行,直接就是无法连接什么什么的. 然后继续查找了一下教程.发现想要能下载文件,还需要配置一下 nginx.conf 文件, 就是nginx的配置文件把.(就是上面我说的我搞坏了的那个文件,然后在网上找了个默认配置,我放在下面把)
nginx 的默认配置文件
# nginx.conf user www-data; worker_processes auto; pid /run/nginx.pid; events {worker_connections 768; } http {sendfile on;tcp_nopush on;tcp_nodelay on;keepalive_timeout 65;types_hash_max_size 2048;include /etc/nginx/mime.types;default_type application/octet-stream;access_log /var/log/nginx/access.log;error_log /var/log/nginx/error.log;gzip on;# 配置服务器server {listen 80; # 监听端口root /usr/share/nginx/html; # 网站根目录index index.html index.htm; # 默认首页文件名server_name localhost; # 域名或IP地址location / {try_files $uri $uri/ =404; # 处理请求}error_page 404 /404.html; # 错误页面location = /404.html {internal;}error_page 500 502 503 504 /50x.html; # 错误页面location = /50x.html {internal;}} }
然后关于下载文件的配置, 我主要是从这篇文章里看到的.
如何在Nginx服务器上配置访问静态文件目录并提供文件下载功能 - Msea - 博客园
超实用!利用Nginx实现文件下载,效率翻倍 | 极客之音
大概意思就是在配置文件的 server 域里添加一个配置.这里引用一个原文:
接下来,我们需要在Nginx的配置文件中映射服务器目录到URL路径。打开相应的server块,在其中添加如下location配置:1.location /download{ 2. alias /www/wwwroot/download/; (注意:这里的地址是我们放要下载的文件的地址目录,我的是 /usr/share/nginx/html/Test ) 3. autoindex on; # 开启目录索引功能,可选,用于展示目录内容列表 4.} alias指令将URL路径/download指向了服务器本地的物理路径/www/wwwroot/download。 autoindex on;选项允许Nginx显示该目录下的文件和子目录列表(如需提供目录浏览功能)。 保存配置文件后,执行以下命令使配置生效(根据实际情况替换命令)。sudo nginx -t # 检查配置文件语法是否正确 sudo systemctl restart nginx # 重启Nginx服务以应用新的配置
像这样,如图:
至此,终于完成了, 将文件放在这个 "Test" 目录下,然后用我们的公网 ip 加上后面的地址加上文件名就可以下载了!! 对了, 这里要注意的是,由于我们配置的网站根目录就是 "/usr/share/nginx/html" ,所以输入网址后进入的实际上就是 html 这个目录,所以我们只需要在 ip 地址后面加上 "html" 目录的后面的目录就好了, 如: xxx.xxx.xxx.xxx/Test/ filename . 这样就可以了!!