用阿里云搭建正向代理服务器
1. 有没有简单的内网穿透工具
端口映射”通俗来说就是将外网主机的IP地址端口映射到内网中一台机器,提供相应的服务。内网相通,电因特网对外开放服务或者接收大数据,都需要端口映射。首先,想要做好端口映射,确定路由器,清楚的认识软件需要开放什么端口号,设置独立固定的Ip地址,关闭主机防火墙,检查wan口获取的Ip是否是公网Ip,最后就是测试。
之前市场上有很多免费版的端口映射工具,现如今基本上都收费了;且测试后,感觉有部分付费的效果也不尽人意。后来测试一款试用的,综合使用后感觉挺稳定,个人开发测试与商用都挺合适,因为我是用来实现再家可以远程访问公司内部的文件,工作需要,没有公网ip很不方便。这个法子挺好用,使用教程如下:
需要的工具:
网云穿内网穿透
一个可以正常上网的电脑
网云穿是一款可以在包括但不限于Windows、Mac、Linux、群辉、树莓派、威联通上使用的内网穿透,它可以很便捷的帮助你将本地内网的应用发布出去,比如:网站、数据库、硬盘文件、远程桌面、应用、游戏(如我的世界)等等,这样您就可以很方便的微信调试、自建云盘、异地办公等等,它不需要您有公网IP、不需要您有服务器、也不需要您设置任何路由器,只需要您安装软件进行简单设置即可直接使用。WIndows使用网云穿穿透3389远程桌面首先我们开启被远程那台电脑的远程桌面访问功能(因为这个网云穿只需要安装在被远程的电脑上即可
2. 阿里云服务器部署flask项目
当我们执行下面的hello.py时,使用的flask自带的服务器,完成了web服务的启动。在生产环境中,flask自带的服务器,无法满足性能要求,我们这里采用Gunicorn做wsgi容器,来部署flask程序。Gunicorn(绿色独角兽)是一个python WSGI的HTTP服务器。从Ruby的独角兽(Unicorn )项目移植。该Gunicorn服务器与各种Web框架兼容,实现非常简单,轻量级的资源消耗。Gunicorn直接用命令启动,不需要编写配置文件,相对uWSGI要容易很多。
区分几个概念 :
WSGI:全称是Web Server Gateway Interface(web服务器网关接口),它是一种规范,它是web服务器和web应用程序之间的接口。它的作用就像是桥梁,连接在web服务器和web应用框架之间。
uwsgi:是一种传输协议,用于定义传输信息的类型。
uWSGI:是实现了uwsgi协议WSGI的web服务器。
我们的部署方式: nginx + gunicorn + flask
web开发中,部署方式大致类似。简单来说,前端代理使用Nginx主要是为了实现分流、转发、负载均衡,以及分担服务器的压力。Nginx部署简单,内存消耗少,成本低。Nginx既可以做正向代理,也可以做反向代理。
正向代理 :请求经过代理服务器从局域网发出,然后到达互联网上的服务器。
特点 :服务端并不知道真正的客户端是谁。
反向代理 :请求从互联网发出,先进入代理服务器,再转发给局域网内的服务器。
特点 :客户端并不知道真正的服务端是谁。
区别 :正向代理的对象是客户端。反向代理的对象是服务端。
查看命令行选项 : 安装gunicorn成功后,通过命令行的方式可以查看gunicorn的使用信息。
直接运行 :
指定进程和端口号 : -w: 表示进程(worker)。 -b:表示绑定ip地址和端口号(bind)。--access-logfile:表示指定log文件的路径
作为守护进程后台运行 :
阿里云服务器默认安装到 /user/sbin/ 目录,进入目录,启动 ngnix:
Ubuntu 上配置 Nginx 也是很简单,不要去改动默认的 nginx.conf 只需要将/etc/nginx/sites-available/default文件替换掉就可以了。
新建一个 default 文件,添加以下内容:
修改完成后重启nginx即可。
Ubuntu 上配置 Nginx 另一种方法,cd 到 /etc/nginx/conf.d 文件夹,新建 xxx.conf 文件(xxx 可以是项目名,只要是 .conf 文件即可),写入以下内容:
需要监听 https 请求时,写入以下内容:
3. 如何成为一个数据分析师需要具备哪些技能
接下来我们分别从每一个部分讲讲具体应该学什么、怎么学。
数据获取:公开数据、Python爬虫
如果接触的只是企业数据库里的数据,不需要要获取外部数据的,这个部分可以忽略。
外部数据的获取方式主要有以下两种。
第一种是获取外部的公开数据集,一些科研机构、企业、政府会开放一些数据,你需要到特定的网站去下载这些数据。这些数据集通常比较完善、质量相对较高。
另一种获取外部数据费的方式就是爬虫。
比如你可以通过爬虫获取招聘网站某一职位的招聘信息,爬取租房网站上某城市的租房信息,爬取豆瓣评分评分最高的电影列表,获取知乎点赞排行、网易云音乐评论排行列表。基于互联网爬取的数据,你可以对某个行业、某种人群进行分析。
在爬虫之前你需要先了解一些 Python 的基础知识:元素(列表、字典、元组等)、变量、循环、函数(链接的菜鸟教程非常好)……以及如何用成熟的 Python 库(urllib、BeautifulSoup、requests、scrapy)实现网页爬虫。如果是初学,建议从 urllib 和 BeautifulSoup 开始。(PS:后续的数据分析也需要 Python 的知识,以后遇到的问题也可以在这个教程查看)
网上的爬虫教程不要太多,爬虫上手推荐豆瓣的网页爬取,一方面是网页结构比较简单,二是豆瓣对爬虫相对比较友好。
掌握基础的爬虫之后,你还需要一些高级技巧,比如正则表达式、模拟用户登录、使用代理、设置爬取频率、使用cookie信息等等,来应对不同网站的反爬虫限制。
除此之外,常用的的电商网站、问答网站、点评网站、二手交易网站、婚恋网站、招聘网站的数据,都是很好的练手方式。这些网站可以获得很有分析意义的数据,最关键的是,有很多成熟的代码,可以参考。
数据存取:SQL语言
你可能有一个疑惑,为什么没有讲到Excel。在应对万以内的数据的时候,Excel对于一般的分析没有问题,一旦数据量大,就会力不从心,数据库就能够很好地解决这个问题。而且大多数的企业,都会以SQL的形式来存储数据,如果你是一个分析师,也需要懂得SQL的操作,能够查询、提取数据。
SQL作为最经典的数据库工具,为海量数据的存储与管理提供可能,并且使数据的提取的效率大大提升。你需要掌握以下技能:
提取特定情况下的数据:企业数据库里的数据一定是大而繁复的,你需要提取你需要的那一部分。比如你可以根据你的需要提取2018年所有的销售数据、提取今年销量最大的50件商品的数据、提取上海、广东地区用户的消费数据……,SQL可以通过简单的命令帮你完成这些工作。
数据库的增、删、查、改:这些是数据库最基本的操作,但只要用简单的命令就能够实现,所以你只需要记住命令就好。
数据的分组聚合、如何建立多个表之间的联系:这个部分是SQL的进阶操作,多个表之间的关联,在你处理多维度、多个数据集的时候非常有用,这也让你可以去处理更复杂的数据。
数据预处理:Python(pandas)
很多时候我们拿到的数据是不干净的,数据的重复、缺失、异常值等等,这时候就需要进行数据的清洗,把这些影响分析的数据处理好,才能获得更加精确地分析结果。
比如空气质量的数据,其中有很多天的数据由于设备的原因是没有监测到的,有一些数据是记录重复的,还有一些数据是设备故障时监测无效的。比如用户行为数据,有很多无效的操作对分析没有意义,就需要进行删除。
那么我们需要用相应的方法去处理,比如残缺数据,我们是直接去掉这条数据,还是用临近的值去补全,这些都是需要考虑的问题。
对于数据预处理,学会 pandas 的用法,应对一般的数据清洗就完全没问题了。需要掌握的知识点如下:
选择:数据访问(标签、特定值、布尔索引等)
缺失值处理:对缺失数据行进行删除或填充
重复值处理:重复值的判断与删除
空格和异常值处理:清楚不必要的空格和极端、异常数据
相关操作:描述性统计、Apply、直方图等
合并:符合各种逻辑关系的合并操作
分组:数据划分、分别执行函数、数据重组
Reshaping:快速生成数据透视表
概率论及统计学知识
数据整体分布是怎样的?什么是总体和样本?中位数、众数、均值、方差等基本的统计量如何应用?如果有时间维度的话随着时间的变化是怎样的?如何在不同的场景中做假设检验?数据分析方法大多源于统计学的概念,所以统计学的知识也是必不可少的。需要掌握的知识点如下:
基本统计量:均值、中位数、众数、百分位数、极值等
其他描述性统计量:偏度、方差、标准差、显着性等
其他统计知识:总体和样本、参数和统计量、ErrorBar
概率分布与假设检验:各种分布、假设检验流程
其他概率论知识:条件概率、贝叶斯等
有了统计学的基本知识,你就可以用这些统计量做基本的分析了。通过可视化的方式来描述数据的指标,其实可以得出很多结论了,比如排名前100的是哪些,平均水平是怎样的,近几年的变化趋势如何……
你可以使用python的包 Seaborn(python包)在做这些可视化的分析,你会轻松地画出各种可视化图形,并得出具有指导意义的结果。了解假设检验之后,可以对样本指标与假设的总体指标之间是否存在差别作出判断,已验证结果是否在可接受的范围。
python数据分析
如果你有一些了解的话,就知道目前市面上其实有很多 Python 数据分析的书籍,但每一本都很厚,学习阻力非常大。但其实真正最有用的那部分信息,只是这些书里很少的一部分。比如用 Python 实现不同案例的假设检验,其实你就可以对数据进行很好的验证。
比如掌握回归分析的方法,通过线性回归和逻辑回归,其实你就可以对大多数的数据进行回归分析,并得出相对精确地结论。比如DataCastle的训练竞赛“房价预测”和“职位预测”,都可以通过回归分析实现。这部分需要掌握的知识点如下:
回归分析:线性回归、逻辑回归
基本的分类算法:决策树、随机森林……
基本的聚类算法:k-means……
特征工程基础:如何用特征选择优化模型
调参方法:如何调节参数优化模型
Python 数据分析包:scipy、numpy、scikit-learn等
在数据分析的这个阶段,重点了解回归分析的方法,大多数的问题可以得以解决,利用描述性的统计分析和回归分析,你完全可以得到一个不错的分析结论。
当然,随着你实践量的增多,可能会遇到一些复杂的问题,你就可能需要去了解一些更高级的算法:分类、聚类,然后你会知道面对不同类型的问题的时候更适合用哪种算法模型,对于模型的优化,你需要去学习如何通过特征提取、参数调节来提升预测的精度。这就有点数据挖掘和机器学习的味道了,其实一个好的数据分析师,应该算是一个初级的数据挖掘工程师了。
系统实战
这个时候,你就已经具备了数据分析的基本能力了。但是还要根据不同的案例、不同的业务场景进行实战。能够独立完成分析任务,那么你就已经打败市面上大部分的数据分析师了。
如何进行实战呢?
上面提到的公开数据集,可以找一些自己感兴趣的方向的数据,尝试从不同的角度来分析,看看能够得到哪些有价值的结论。
另一个角度是,你可以从生活、工作中去发现一些可用于分析的问题,比如上面说到的电商、招聘、社交等平台等方向都有着很多可以挖掘的问题。
开始的时候,你可能考虑的问题不是很周全,但随着你经验的积累,慢慢就会找到分析的方向,有哪些一般分析的维度,比如top榜单、平均水平、区域分布、年龄分布、相关性分析、未来趋势预测等等。随着经验的增加,你会有一些自己对于数据的感觉,这就是我们通常说的数据思维了。
你也可以看看行业的分析报告,看看优秀的分析师看待问题的角度和分析问题的维度,其实这并不是一件困难的事情。
在掌握了初级的分析方法之后,也可以尝试做一些数据分析的竞赛,比如 DataCastle 为数据分析师专门定制的三个竞赛,提交答案即可获取评分和排名:
员工离职预测训练赛
美国King County房价预测训练赛
北京PM2.5浓度分析训练赛
种一棵树最好的时间是十年前,其次是现在。现在就去,找一个数据集开始吧!!
4. Plex 使用指南之远程访问(正向代理)篇
远程访问是 Plex 的关键功能,它使你能够随时随地浏览并访问 Plex 内容,无论是在自家服务器上还是好友共享的内容,都能伴你左右。然而,实际操作中,网络环境差异可能导致一些问题,尤其是对新手来说可能难以应对。本文将带你了解 Plex 远程访问的配置流程,并提供三种主要的连接方式。
连接方式主要有三种:
公网 IP:若服务器拥有公网 IP(静态或动态,IPv4 或 IPv6),可通过公网 IP 加 Plex 端口直接连接服务器,但上行带宽受限于服务器所在网络。
内网穿透:在服务器没有公网 IP 的情况下,通过内网穿透建立虚拟局域网或组网连接服务器。连接方式与公网 IP 类似,带宽受限于服务器所在网络的上行带宽;若打洞失败,则通过中转服务器进行中继和转发,访问带宽受限于中转服务器的提供者。
Plex 中转:如果无法直连服务器,Plex 提供了免费中转服务,通过服务器间接访问,免费用户带宽限制为 1 Mbps,Pass 用户为 2 Mbps。
理想的连接方式是使用 IPv4 公网 IP,稳定且应用广泛。如果网络没有 IPv4 公网 IP,建议联系运营商申请,某些地区提供免费 IPv4 动态公网 IP,而 IPv6 动态公网 IP 使用场景有一定局限性。
Plex 中转服务意义有限,用于远程访问时可能仅适用于听音乐,视频播放可能会卡顿,带宽限制较小。若申请不到 IPv4 公网 IP 且需要在 IPv4 网络下进行远程访问,建议通过内网穿透尝试连接。
配置远程访问需要准备以下步骤:
- 将光猫设置为桥接模式,关闭 DHCP 服务和无线网络(可联系运营商远程操作),使用路由器或软路由设置 PPPoE 拨号上网。
- 启用 IPv6 网络,如小米路由器,进入后台设置“IPV6 网络设置”,打开“IPV6 网络设置”开关,选择“Native”上网方式,关闭“防火墙”,设置自动配置 DNS,等待网络启用。
- 确保 Plex 服务器和远程访问客户端设备开启 IPv6 网络,获取公网 IPv6 地址(国内运营商 IPv6 地址通常以 2409、2408 或 240e 开头)。
- 启用 Plex 服务器的 IPv6 支持,在“设置 - 网络”中勾选“启动支持 IPv6 的服务器”,设置加密连接为“优先”。
- 禁用远程访问和中转功能,在“设置 - 远程访问”中禁用,取消“启用中转”。
- 允许非加密连接,在所有 Plex 客户端设置“允许非加密连接”为“始终允许”。
接下来,配置用于发现服务器的 URL:
- 注册域名,选择性价比高的平台如 Spaceship、阿里云或腾讯云,注册六位纯数字的 xyz 域名。
- 托管域名至腾讯云,修改 DNS 服务器地址,确保解析成功。
- 将域名解析到 Plex 服务器公网 IPv6 地址,通过腾讯云控制台添加“AAAA”类型记录。
配置动态域名解析,使用免费的 DDNS-GO 进行 IP 地址更新,确保域名解析始终有效。
完成动态域名解析后,在 Plex 的“设置 - 网络”中配置自定义服务器访问 URL 为“http://域名:32400”。
为提升远程访问安全性,配置自定义证书以使用“https”连接服务器。通过阿里云、腾讯云或 Let's Encrypt 等平台申请免费 SSL 证书。
总结,通过本文的步骤配置,Plex 将能顺畅地进行远程访问。在配置过程中,若网络环境为 IPv6,确保远程访问端的设备支持 IPv6,否则可能无法连接。同时,定期检查证书状态,以确保远程访问的安全性和稳定性。