在配了四次环境后, 终于想起来记录一下环境的配置流程, 免得下次配置又全网乱搜资料
系统环境: 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
取消注释
requirepass 你的密码
同样在配置文件中找到 bind 127.0.0.1 ::1
, 修改为
bind 0.0.0.0 ::0
重启一下
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 安装
sudo apt install nginx
使用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 即可