关于 服务器的 http server 架设与配置 梳理

news/2024/10/25 6:27:03/文章来源:https://www.cnblogs.com/Uncle-Aqi/p/18501659

 

目标:想将自己的一些文件放到服务器上,然后谁都能下载,由于不懂这方面,所以跟着网上教程走,但是还是踩了好多坑.这里再梳理一下.

 

首先肯定是要有个自己的云服务器.

然后开始搭建 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 . 这样就可以了!!

 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Codeforces Round 981 div3 个人题解(A~G)

Codeforces Round 981 div3 个人题解(A~G) Dashboard - Codeforces Round 981 (Div. 3) - Codeforces 火车头 #define _CRT_SECURE_NO_WARNINGS 1#include <algorithm> #include <array> #include <bitset> #include <cmath> #include <cstdio> …

JetBrains终于正式宣布:WebStorm免费开放个人开发者使用了!

10 月 24 日,正值程序员节之际,JetBrains 正式宣布:WebStorm 个人版现已全面免费开放使用。众所周知,WebStorm 是一个非常好用的 IDE,但是不免费。为响应开发者社区的需求,JetBrains 决定,针对非商业用途,WebStorm 个人版将不再收取费用,真正实现了对个人开发者的免费…

ubuntu22.04桌面版开启root用户登陆并开启root用户远程ssh连接

ubuntu22.04桌面版开启root用户登陆并开启root用户远程ssh连接最近在使用Ubuntu22.04时需要用到root用户登录桌面,于是配置了下系统,也在网上查找了类似的文章,发现几篇文章都操作都存在一定的问题,所以在这里写了一份较为完整的,这份文档是清澈过可以正常使用运行的,具体…

Arm64内存模型、内存类型、性能与DMA

一、背景 写下本文的原因来自一次 bug 排查,平台为某个 Arm64 处理器。 问题简单来说就是,就是申请一块 dma-buf 并映射到用户空间,对 buffer 使用memcpy()时发现一些异常性能问题:从 dma-buf 向通过malloc()申请的普通堆内存拷贝速度,远慢于从普通堆内存向 dma-buf 拷贝的…

[rCore学习笔记 030] 虚拟地址与地址空间

时隔很久,终于忙里偷闲可以搞一搞rCore,上帝啊,保佑我日更吧,我真的很想学会. 导读部分 首先还是要看官方文档. 我决定看一遍然后自己表述一遍(智将). 这里反复提到MMU,就是因为之前学MCU的时候有一个疑问,就是为什么MCU上不选择跑一个Linux,当时找到的答案是因为没有MMU. MMU的…

11. 使用MySQL之使用数据处理函数

1. 函数 与其他大多数计算机语言一样,SQL支持利用函数来处理数据。 函数一般是在数据上执行的,它给数据的转换和处理提供了方便。 在前一章中用来去掉串尾空格的RTrim()就是一个函数的例子。 补充: 函数没有SQL的可移植性强 能运行在多个系统上的代码称为可移植的(portable…

【CodeForces训练记录】Codeforces Round 981 (Div. 3)

https://codeforces.com/contest/2033 训练情况 22队长率先开出E题,但是结局可能还是掉分了 TAT赛后反思 这场太板了,D题有点反常(存疑?) A题 我们直接模拟位置的变化就行,先手 \(-2 \times i - 1\) 后手 \(+ 2 \times i - 1\),用一个while找到 \(>n\) 的地方来结束循…

东山Pi柒号-4-STM32MP157 TF-A移植

STM32MP157 TF-A 移植 在了解了 STM32MP 系列芯片的启动流程后,我们将开始进行东山 Pi 柒号的 TF-A 移植。 准备工作 首先,我们需要下载 STM32MP1 系列的 STM32MPU_Developer_Package,该包中包含编译器 SDK 和官方源码:STM32MP1 OpenSTLinux 开发套件 https://www.st.com.c…

【投资理财】一起来探索金融理财世界啦

各位程序员小伙伴们,大家都知道最近大 A 股市那叫一个起伏不定啊,就像坐过山车似的,刺激得很。咱程序员平时工作忙归忙,但不少同学对炒股还挺感兴趣的,甚至有的同学在工作的时候还会偷偷摸摸瞅几眼股市行情😜。我最近发现了一些很不错的金融理财资源,想着赶紧分享给大家…

第43篇 Linux上使用docker部署.net8项目详细教程

在docker上部署自己的.net8 webapi,以腾迅linux云服务为例: 1.安装docker 1.1 查看docker是否已安装: 命令:docker -v如果显示版本,说明已经安装成功,无需再安装 1.2 docker未安装,执行以下步骤安装 1.2.1 添加 Docker 软件源。 dnf config-manager --add-repo=http://m…

7-1将数组中的数逆序存放

24级一维数组 题目不难,就是格式啥的要看仔细楼#include<stdio.h> int main (){int a[11] = {0};int num;int input;scanf("%d",&num);for(int i=num-1;i>=0;i--){//逆序存放!!!scanf("%d",&input);a[i] = input;}for(int i=0;i<n…