文章目录
1. 买服务器前的小知识
1.1. 服务器应该买多大?
1核2G 1M 入门款 适合测试,博客、web应用。
2核4G 3M 中配款 建站、小程序
4核8G 5M 高配款 App创业初期、中大型网站
4核8G 8M 流畅版 适合多图、视频较多的大型网站
8核16G 10M 进阶款 对各方面性能参数要求都较高的,访问量较多的大型网站
[内容节选自:知乎-草上飞-云服务器几核几G几M配置选择小结](https://zhuanlan.zhihu.com/p/430730582)
1.2. 服务器应该买哪家?
看看最新的促销活动,不过大多是新人优惠,确实便宜,如果不考虑实际使用,可以轮流着买新人优惠
腾讯云、阿里云这俩应该买哪个?
如果是自己玩的话,可以买腾讯云,毕竟略便宜、大杯,而且微信登录好用
如果有成熟的开发能力,小规模的团队,准备发布成熟的服务应用,阿里云配套好,很多公司都用的阿里云
如果自己时间多,然后不嫌麻烦的话,天翼云-便宜、华为云-能用
2. 购置自己的域名以及非常重要的ICP备案
2.1. 什么是ICP备案
简而言之:
如果网站想直接通过域名例如:
baidu.com、www.baidu.com、baike.baidu.com
不加端口地在国内被访问到,就需要按找国家要求进行ICP网站备案
2.2. 不备案的后果
如果域名不备案的话,购置域名后,即使解析到自己的服务器ip,但是还是不能通过域名访问网络端口(80、443),
就是不能直接通过baidu.com来访问百度首页,只能通过baidu.com:8000这种带端口的方式来访问,逼格瞬间就下来了
热知识:
baidu.com 等价于 baidu.com:80 这是因为80默认是网络端口不显示了
现象:
在服务器中运行命令:curl 127.0.0.1 如果有nginx,会显示欢迎页面
但是通过自己买的域名来访问80端口,就不可以
cmd命令的话,就是 ping sunzhongding.com是通的,但是telnet sunzhongding.com:80就是不通的
其它端口是可以用的
2.3. 怎么买一个自己的域名
如果自己有想好的域名,就去想买服务器的服务商搜域名注册,能买就买,不算很贵
如果没有自己喜欢的域名,就可以随便注册一个
或者用我下边的Java代码,来随机生成想要的长度的域名
2.4. 随机从0-9、a-z中取n和长度的字符进行全排列
算法很low,4个长度就可以了,如有必要,自行优化
ps:腾讯云有批量查询可注册域名的功能
public static Integer length = 4;
public static final List<String> SOURCE_LIST =
Arrays.asList("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f", "g", "h", "i",
"j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z");
public static Map<String, String> targetMap = new HashMap<>(1024);
public static Map<String, String> targetMapTemp = new HashMap<>(1024);
public static void main(String[] args) {
for (int i = 1; i <= length; i++) {
targetMapTemp.clear();
for (String source : SOURCE_LIST) {
if (i == 1) {
targetMapTemp.put(source, source);
} else {
for (String str : targetMap.keySet()) {
targetMapTemp.put(source + str, source + str);
}
}
}
targetMap.clear();
targetMap.putAll(targetMapTemp);
}
System.out.println(targetMap.size());
List<String> result = new ArrayList<>(targetMap.keySet());
result = result.stream().sorted().collect(Collectors.toList());
List<List<String>> split = ListUtil.split(result, 1000);
for (List<String> list : split) {
StringBuilder stringBuilder = new StringBuilder();
for (String str : list) {
stringBuilder.append(str).append("-");
}
System.out.println(stringBuilder);
}
}
3. 通过域名访问自己的服务器
3.1 前提
假设已经买好了域名、服务器
3.2 域名映射
1、找到解析功能
2、快速添加解析到自己的服务器公网ip
3、或者单独添加三级域名到自己的服务器
3.3 安全组
1、点击管理
2、找到防火墙
3、按需放开端口,当然图省事也可以选择全放开
3.4 服务器防火墙
1、在腾讯云自己的实例重置密码后
2、使用SSH软件登录自己的服务器
3、关闭服务器防火墙
service iptables status 或者使用 iptables -L
systemctl stop firewalld.service #但是开机之后还会启动防火墙
systemctl disable firewalld.service #禁止firewall开机启动
4、放开指定端口,百度一下吧
4. nginx反向代理、lvs负载均衡、简单的前端代码跳转不同的
4.1 nginx
1、在linux中直接安装nginx
https://blog.csdn.net/weixin_51542566/article/details/122756621
2、使用docker安装nginx
https://blog.csdn.net/BThinker/article/details/123507820
4.2 lvs负载均衡
待建设
4.3 在nginx中配置简单的html文件来跳转不同的子服务
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>浏览器标题</title>
</head>
<body>
<ul>
<li><a href="http://0.0.0.0:8848/nacos">Nacos</a></li>
<li><a href="http://0.0.0.0:8180/">SkyWalking</a></li>
<li><a href="http://0.0.0.0:9900/xxl-job-admin/">xxl-job</a></li>
<li><a href="http://0.0.0.0:8858//">Sentinel</a></li>
<li><a href="http://0.0.0.0:8181//">RocketMQ</a></li>
</ul>
</body>
</html>
nginx配置
1、修改server配置中的location、root、index
server {
listen 80;
server_name localhost;
location / {
root /data/web/portal;
index portal.html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
2、将4.3的文件放进上一步的root目录下
3、通过域名访问对应主页,然后进行跳转