惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
MyScale Blog
MyScale Blog
Jina AI
Jina AI
爱范儿
爱范儿
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
I
Intezer
The Cloudflare Blog
T
Threat Research - Cisco Blogs
G
Google Developers Blog
Stack Overflow Blog
Stack Overflow Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
D
Docker
AI
AI
Scott Helme
Scott Helme
Attack and Defense Labs
Attack and Defense Labs
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
L
LangChain Blog
Recent Announcements
Recent Announcements
Security Latest
Security Latest
Hugging Face - Blog
Hugging Face - Blog
W
WeLiveSecurity
Last Week in AI
Last Week in AI
Security Archives - TechRepublic
Security Archives - TechRepublic
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
P
Proofpoint News Feed
S
Securelist
S
Security Affairs
Project Zero
Project Zero
博客园 - 叶小钗
Google DeepMind News
Google DeepMind News
T
Tor Project blog
A
About on SuperTechFans
V2EX - 技术
V2EX - 技术
宝玉的分享
宝玉的分享
T
Tenable Blog
博客园 - 聂微东
人人都是产品经理
人人都是产品经理
Simon Willison's Weblog
Simon Willison's Weblog
Forbes - Security
Forbes - Security
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
V
V2EX
AWS News Blog
AWS News Blog
The GitHub Blog
The GitHub Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
P
Privacy & Cybersecurity Law Blog
阮一峰的网络日志
阮一峰的网络日志
I
InfoQ
C
CXSECURITY Database RSS Feed - CXSecurity.com
H
Hacker News: Front Page
美团技术团队

Chenxu's Blog

RAG检索优化:从 68% 到 82.2% 学习深度学习 北邮计算机研究生选课指北 学习机器学习 上海篇 提出一个好问题 写代码的环境 选购一台合适的设备 计算机的第零课 序言 内蒙古篇 山东篇 一篇对transformers的疑惑 浅析GPUStack 浅谈后端项目分层 浙江篇 河南篇 一些三端协同的开发工具记录 浅谈编程语言中的 GC 在 Windows 上安装 Rust 美化博客 消息队列 MyBatis 现代交换原理2024年题目 回忆版 北邮计科本科课程指北 ClkLog埋点用户分析系统研究报告 大数据梧桐实验分享 大数据HBase实验分享 国产向量数据库研究实践 —— 基于 Milvus 的电影推荐系统 大数据HDFS实验分享 SSE多服务之间推送数据 数据库系统原理 操作系统 编译原理 手把手教你gozero从开发到部署 (番外篇): 介绍 gtodolist 前端项目 天津篇 北京篇 手把手教你gozero从开发到部署 (5): gtodolist 之任务的删除 前端相关问题 vue3 + element-plus学习 git相关命令 人工智能原理 使用 MongoTemplate 时开启事务 MySQL Redis 力扣刷题笔记之动态规划 记录一次 VSCode 出现的各种奇怪的问题 手把手教你gozero从开发到部署 (4): 在 model 中自己编写函数实现数据库分页查询 记录平时用到的 windows 右键管理 记录平时使用的 linux 的指令 安装 gstore 并使用 java api 手把手教你gozero从开发到部署 (3): gtodolist 之任务的创建和修改 手把手教你gozero从开发到部署 (番外篇): 记录第一次部署 CI/CD 的流程 记录完成 gtodolist 中遇到的 bug 手把手教你gozero从开发到部署 (2): gtodolist 之 user 模块开发 手把手教你gozero从开发到部署 (1): gtodolist 项目说明和环境准备 快速入门 gozero 框架 vue部署在nginx上的相关问题 记一次安装scrapy的报错 将博客部署至服务器 Java CS143: Compliers 《MySQL必知必会》读书笔记(2) 初识 GORM 初识 gin 框架 Spring 《MySQL必知必会》读书笔记(1) 本地搭建博客 🤝友链 🙋🏻‍♂️关于 Browser and Device Check
服务器环境配置
Chenxu · 2024-04-03 · via Chenxu's Blog

在配了四次环境后, 终于想起来记录一下环境的配置流程, 免得下次配置又全网乱搜资料

系统环境: ubuntu 20.04

需要打开的端口: 80, 443, 3306, 6379, 27017

创建用户

首先创建一个用户, 为了方便, 我们直接给这个新用户 sudo 权限

# 在root用户下
useradd -r -m -s /bin/bash guochenxu
adduser guochenxu sudo
passwd guochenxu

# 在新创建的账号下检查是否有sudo权限
sudo -l

安装 java

直接用 apt 安装即可, 先更新一下 apt 的包

sudo apt-get upgrade
sudo apt update

安装 java8

sudo apt install openjdk-8-jdk
java -version # 验证

安装 maven

sudo apt install maven
mvn -version

修改为国内镜像源

sudo vim /etc/maven/settings.xml

<mirrors> 标签内添加:

    <mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>https://maven.aliyun.com/repository/public/</url>
      <mirrorOf>central</mirrorOf>
    </mirror>

    <mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>
    </mirror>

安装 Mysql

先用 apt 安装 mysql8

sudo apt-get install mysql-server

设置 root 用户密码和远程登录

# 先进入mysql命令行, 第一次没有密码直接回车即可, 这里需要加个sudo
sudo mysql -u root -p

# mysql命令行下
use mysql;
ALTER USER 'root'@'localhost' IDENTIFIED BY '密码';
# 上述命令如果不行的话可以加个指定鉴权的插件
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码';

# 退出后再次登录, 这次输入密码
exit
mysql -u root -p

# mysql命令行下
use mysql;
update user set host='%' where user='root';
flush privileges;

如果还是无法远程登录的话可能需要改下配置文件 /etc/mysql/mysql.conf.d/mysqld.cnf 并重启服务

bind-address            = 0.0.0.0
mysqlx-bind-address     = 0.0.0.0

安装 Redis

安装

sudo apt install redis-server

在配置文件/etc/redis/redis.conf中找到 # requirepass foobared 取消注释

同样在配置文件中找到 bind 127.0.0.1 ::1, 修改为

重启一下

sudo systemctl restart redis-server

安装 MongoDB

mongodb 的安装比较麻烦, 需要先导入公钥和添加软件源,这里我们安装的 mongo6,其他版本和操作系统参见清华源

wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
echo "deb [arch=amd64] https://mirrors.tuna.tsinghua.edu.cn/mongodb/apt/ubuntu focal/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list

再次更新 apt 软件包并安装

sudo apt-get update
sudo apt-get install -y mongodb-org

先设置可以远程连接, 找到/etc/mongod.conf, 修改配置

net:
    port: 27017
    bindIp: 0.0.0.0

然后重启

sudo systemctl restart mongod

重启以后查看一下状态, 如果启动失败且报错代码为 14, 可以试一下将下列文件夹所有者改为 mongodb

sudo chown -R mongodb:mongodb /var/lib/mongodb
sudo chown -R mongodb:mongodb /var/log/mongodb
sudo chown mongodb:mongodb /tmp/mongodb-27017.sock

远程使用 idea(或者其他工具)连接后, 进入 mongo 命令行界面, 创建管理员账户并设置密码

use admin
db.createUser({ user: "admin", pwd: "密码", roles: [ { role: "root", db: "admin" } ] })

再去配置文件中修改使用密码验证

security:
    authorization: enabled

再次重启

sudo systemctl restart mongod

安装 Nginx

依旧是简单的 apt 安装

使用ip:80在浏览器访问, 看到欢迎页面即为安装成功

以配置test.chenxutalk.top域名为例,在/etc/nginx/conf.d目录下创建对应配置文件test.conf,具体配置如下:

server {
    listen       80;
    listen       [::]:80;
    server_name test.chenxutalk.top;

    root /home/front/test; # 映射目录

    include /etc/nginx/default.d/*.conf;

    # 设置跨域配置
    add_header Access-Control-Allow-Origin *;
    add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,OPTIONS always;
    add_header Access-Control-Allow-Credentials true always;
    add_header Access-Control-Allow-Headers DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization,x-auth-token always;
    add_header Access-Control-Max-Age 1728000 always;

    # 预检请求处理
    if ($request_method = OPTIONS) {
        return 204;
    }

    location / {
        root /home/front/test;
        try_files $uri $uri/ /index.html; # 解决页面刷新404问题
        index  index.html index.htm;
    }

    location /api {
        # 设置 Nginx 不对 SSE 响应进行缓冲,直接透传给客户端
        proxy_buffering off;
        # 设置代理读取服务器响应的超时时间
        proxy_read_timeout 24h;
        # 设置客户端连接的超时时间
        proxy_connect_timeout 1h;
        # 设置 HTTP 版本,SSE 需要 HTTP/1.1
        proxy_http_version 1.1;
        # 保持连接活性,不发送连接关闭的信号
        proxy_set_header Connection '';
        # 配置代理传递的头部,确保 Host 头部正确传递
        proxy_set_header Host $host;
        # 设置代理的响应头部,保持传输编码为 chunked
        proxy_set_header X-Accel-Buffering no;
        proxy_pass  http://localhost:26830; # 这里是设置反向代理到对应的后端
    }

    error_page 404 /404.html;
    location = /40x.html {
        root   /home/front/test;
    }

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
    }
}

在上述配置文件中的映射目录下放置一个index.html文件,然后可以使用certbot 配置 ssl 即可