因为CentOS在2021年宣布正式停止维护,缩短生命周期,被迫重新将Linux服务器运行平台以Ubuntu系统重装,本文章记录主要的建站套件安装、配置及维护方法
关于网站域名购买及配置本文不再赘述,已在CloudFlare文章中进行说明,关于域名的购买与备案不在本文探讨范围内
因此本文的前提条件为已经购买或拥有一台带有独立公网IP地址的服务器及一个已经完成工信部备案的域名
Nginx
Apache HTTP服务器相较于Nginx更麻烦,且配置繁琐,本文建议使用Nginx作为网站架设服务器
安装Nginx
Nginx 在默认的 Ubuntu 源仓库中可用,使用以下命令进行安装:
1 2
| sudo apt update sudo apt install nginx
|
安装完成后输入命令测试运行状态
1
| sudo systemctl status nginx
|
出现绿色点则说明运行正常
配置防火墙
防火墙分为服务器上的防火墙与云服务器提供商的防火墙
云服务器的防火墙直接在控制台配置端口对所有IP开放即可
Ubuntu系统自带ufw防火墙,配置允许Nginx即可,并验证目前防火墙状态
1 2 3
| sudo ufw enable sudo ufw allow 'Nginx Full' sudo ufw status
|
如需要允许/删除某个端口,允许以下命令:
1 2
| sudo ufw allow 3050/tcp sudo ufw delete allow 3050/tcp
|
除了配置防火墙防止暴露过多的端口,但仍然会被别有用心之人暴力扫描开放的端口并以穷举法暴力登录,Fail2Ban 能够自动化监视暴力攻击和密码猜测者的攻击,对于在短时间内反复未能通过身份验证,则自动的禁止进行尝试。Fail2Ban 可使用以下命令进行安装并测试运行状态:
1 2
| sudo apt-get install fail2ban sudo systemctl status fail2ban.service
|
配置Nginx并测试
切换到Nginx配置目录并查看nginx.con
f配置文件
1 2
| cd /etc/nginx sudo cat nginx.conf
|
第一行说明了nginx的权限属于www-data用户,需要另行配置或直接修改为主用户账户即可
11-63行为对HTTP的解析配置,默认开启SSL
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
| user www-data; worker_processes auto; pid /run/nginx.pid; include /etc/nginx/modules-enabled/*.conf;
events { worker_connections 768; }
http {
sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048;
include /etc/nginx/mime.types; default_type application/octet-stream;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on;
access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log;
gzip on;
include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; }
|
对于网站服务,可直接使用如下的配置,listen需要设置为 443 ssl,server_name为需要解析的域名(已在CloudFlare完成配置),ssl_certificate与ssl_certificate_key为TLS密匙地址,location /模块中的root为网站储存路径(需确保nginx所属用户组可以访问)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| server {
listen 443 ssl; server_name XXXX.com; root /home/ubuntu/WorkSpace/; ssl_certificate /etc/nginx/cert/XXXX.com.pem; ssl_certificate_key /etc/nginx/cert/XXXX.com.key; ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; location / { root /home/ubuntu/XXXXXX; index index.html index.htm; } error_page 500 502 503 504 /50x.html; }
|
对于需要使用反向代理的服务,模块基本如上,proxy_pass设置为反向代理的地址即可
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| server {
listen 443 ssl; server_name yyy.yyyy.com; root /home/ubuntu/WorkSpace/visual-kg-history/; ssl_certificate /etc/nginx/cert/yyyy.com.pem; ssl_certificate_key /etc/nginx/cert/yyyy.com.key; ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; location / { proxy_pass http://localhost:1008; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_buffering off; } error_page 500 502 503 504 /50x.html; }
|
配置完成后保存推出,使用命令确认文件格式及内容准确
查看配置是否准确,如出现successful则说明文件配置检查通过
使用命令重启nginx以配置新的设置
Nginx管理
1 2 3
| nginx -s reload nginx -s stop nginx -t
|
不建议使用KILL
命令强制停止所有Nginx服务,可能会导致意想不到的错误
对于nginx: [error] invalid PID number “” in “/run/nginx.pid”
错误的处理方法:
1
| sudo nginx -c /etc/nginx/nginx.conf
|
MySQL
MySQL同样被集成到了中央仓库中,可使用以下命令直接安装,并检查安装结果
1 2 3
| sudo apt update sudo apt install mysql-server sudo systemctl status mysql
|
通过这张方式安装的MySQL账户与密码为自动生成,需要查看debian.cnf文件
1
| sudo cat /etc/mysql/debian.cnf
|
服务器端的MySQL通常被设置为默认占有大量内存资源,如果需要削减内存占用量,可以修改mysqld.cnf
文件进行修改
1 2 3 4
| sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
performance_schema = off table_open_cache = 512
|
Neo4j
neo4j图数据库可通过以下命令安装并测试:
1 2 3 4 5 6 7
| curl -fsSL https://debian.neo4j.com/neotechnology.gpg.key |sudo gpg --dearmor -o /usr/share/keyrings/neo4j.gpg echo "deb [signed-by=/usr/share/keyrings/neo4j.gpg] https://debian.neo4j.com stable 4.1" | sudo tee -a /etc/apt/sources.list.d/neo4j.list sudo apt update sudo apt install neo4j sudo systemctl enable neo4j.service sudo systemctl start neo4j.service sudo systemctl status neo4j.service
|
进入neo4j交互式shell,输入默认的账户与密码neo4j
后修改密码
最后更新时间: