[第六篇]——Docker云服务器

云服务器

云服务器(Elastic Compute Service, ECS)是一种简单高效、安全可靠、处理能力可弹性伸缩的计算服务。

云服务器管理方式比物理服务器更简单高效,我们无需提前购买昂贵的硬件,即可迅速创建或删除云服务器,云服务器费用一般在几十到几百不等,可以根据我们的需求配置。

目前市场上的云服务器很多,这里主要介绍以下几家:

  • :活动折扣力度很大(1核2G,72.60/年)。

  • :腾讯云目前活动多一些,性价比也高。

注意:很多云服务器给新用户提供的优惠力度是最大,基本上都是 1~2 折,建议新注册的用户购买。


阿里云

新用户购买具体信息,可以点击下面的图片。

阿里活动,不分新老用户,可以领红包参与满减活动,续费也有专门的优惠券,续费优惠券。

注意:阿里云突发性能型的服务器真的只能自己学习用,如果要用对外提供服务要慎重选择,因为它性能瓶颈限制很大,不过价格便宜就是了。

当然,你也可以直接到 选择更多配置及其他地域的云服务器:

红框为无需备案地区:


腾讯云

腾讯云秒杀活动已开始,以下几款性价比非常高,有几款是需要抢购的,大家看好时间基本能拿到。

  • 1、1核2G 74/年、219元/3年(原价:1506/年),可以用来学习,Linux 知识对技术人员的成才非常重要。
  • 2、2核4G 3M 带宽 1 年 328(原价:3198元)。
  • 3、如果需要购置海外服务器(国内要备案),可以点击: https://curl.qcloud.com/5C1FtZ3S

每个时间点都有不同的配置跟价格,具体信息,可以点击下面的图片( https://curl.qcloud.com/JsztA7Wh)。

国内服务器如果要做网站之类的还得备案,中国香港地区和海外的是不需要备案的,可以点击: https://curl.qcloud.com/5C1FtZ3S 链接,选择不同区域购买,以下红框部分不需要备案。


腾讯云服务器使用

本章节以腾讯云服务器为例。

1、首先点击下图购买(更多服务器的配置信息见下文):

2、登陆腾讯云控制台,查看已购买的服务器:

3、在使用腾讯云服务器前,我们需要先创建一个 SSH 密钥,点击左侧的 SSH 密钥 (使用密钥登录比密码更安全):

输入密钥名称,然后点击确定,就会自动生成一个密钥,密钥会自动下载到本地,请保存好下载的密钥,密钥文件名就是你输入的密钥名称。

4、接着我们勾选已经创建的密钥,点击 绑定/解绑实例 按钮,弹窗中会出现我们的 ECS 服务器,将其绑定到这个密钥即可:

5、返回实例列表,点击实例右侧的 登录 按钮,弹窗中点击立即登录,这是会弹出一个新的浏览器窗口,我们选择密钥登录,密钥文件就是在第三个步骤创建的:

当然你可以选择第三方客户端登录(如:SecureCRT),用户名为 ubuntu,其他系统估计略有不同,然后导入对应的 key 即可。

### 使用 Docker 构建 Nginx 并实现访问统计 要基于 Docker 搭建 Nginx 服务器并实现文章访问人次和时间的统计功能,可以按照以下方法完成: #### 1. 准备工作 在开始之前,确保已经安装了 DockerDocker Compose。如果尚未安装,请先完成安装。 #### 2. 创建 Dockerfile 文件 创建一个名为 `Dockerfile` 的文件来定义自定义的 Nginx 镜像。该镜像将包含访问日志记录的功能,并支持后续的数据分析工具集成。 ```dockerfile FROM nginx:latest # 复制自定义配置到容器中 COPY nginx.conf /etc/nginx/nginx.conf # 替换默认页面为测试页面 (可选) RUN rm -rf /usr/share/nginx/html/* && \ echo 'Welcome to the Access Statistics Demo' > /usr/share/nginx/html/index.html EXPOSE 80 ``` 在此基础上,还需要编写一个定制化的 Nginx 配置文件 (`nginx.conf`) 来启用详细的访问日志记录。 --- #### 3. 编写 Nginx 配置文件 以下是 `nginx.conf` 的示例内容,启用了访问日志并将请求的时间戳和 IP 地址记录下来以便进一步处理。 ```conf http { log_format custom '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent"'; access_log /var/log/nginx/access.log custom; server { listen 80; server_name localhost; location / { root /usr/share/nginx/html; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } } } ``` 此配置会生成带有详细信息的日志条目,便于后续解析和统计[^1]。 --- #### 4. 启动 Nginx 容器 构建并启动容器的过程如下所示: ```bash # 构建镜像 docker build -t my-nginx . # 运行容器 docker run --name my-running-nginx -p 80:80 -d my-nginx ``` 此时,Nginx 将运行于本地主机的 80 端口上,外部可通过浏览器或其他 HTTP 请求工具访问。 --- #### 5. 实现访问统计功能 为了实现访问次数和时间的统计,可以选择两种方式之一:手动解析日志或引入第三方监控工具。 ##### 方法一:手动解析日志 利用脚本定期读取 `/var/log/nginx/access.log` 日志文件的内容,并提取所需字段进行汇总。例如,Python 脚本可用于快速计算总访问量和按时间段划分的统计数据。 ```python import re def parse_nginx_logs(log_file_path): pattern = r'(\S+) \S+ \[(.*?)\]' with open(log_file_path, 'r') as file: logs = file.readlines() ip_counts = {} time_stamps = [] for line in logs: match = re.match(pattern, line) if match: ip_address = match.group(1) timestamp = match.group(2) # 计算每IP地址的访问次数 if ip_address not in ip_counts: ip_counts[ip_address] = 0 ip_counts[ip_address] += 1 # 收集时间戳数据 time_stamps.append(timestamp) return ip_counts, time_stamps ip_stats, timestamps = parse_nginx_logs('/path/to/logs/access.log') print(f'Total unique IPs: {len(ip_stats)}') for ip, count in ip_stats.items(): print(f'{ip}: {count} visits') print('Timestamps:', timestamps[:10]) # 显示前十个时间戳作为样例 ``` ##### 方法二:使用 Prometheus + Grafana 对于更复杂的场景,推荐采用 Prometheus 和 Grafana 堆栈来进行实时监控和可视化展示。这些工具能够自动抓取指标并通过图形界面呈现结果。 --- #### 6. 结合虚拟机部署 当需要跨多个物理节点管理时,可以在每一台虚拟机上重复以上步骤单独设置各自的 Nginx 实例;或者考虑更高层次的服务编排框架如 Kubernetes 来统一管理和调度所有副本实例及其关联资源[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值