前言

之前使用的服务器配置没有在活动的时候搞 然后配置低还贵 /(ㄒoㄒ)/~~ 所以这次趁着活动换了一台服务器 (还是国外的)在华盛顿 小水管 下次一定迁移回国或者到香港 主要是国内要备案什么的好麻烦 。

环境

  • ubuntu 22.04 为什么我看大家都用debian
  • lnmp

配置

主机拿到之后首先使用root用户登录到cli界面

SSH

SSH登录

ssh基础知识
首先需要创建用户并禁用root账户的ssh登录 xzxzbyh为创建的用户

# 该标志-m表示创建用户的主目录并-c允许指定注释
useradd -m -c "my selfs " xzxzbyh
# 指定shell
usermod -s /bin/bash xzxzbyh
# 更改密码
passwd xzxzbyh 
# 使用usermod 命令将此用户添加到适当的系统管理员组,-a表示追加用户帐户 -G指定一个组
usermod -aG wheel xzxzbyh #CentOS/RHEL 
usermod -aG sudo xzxzbyh #Debian/Ubuntu
# 切换用户
su xzxzbyh
cd ~
# 生成ssh密钥
ssh-keygen  

img

生成密钥以后,建议修改它们的权限,防止其他人读取。

chmod 600 ~/.ssh/id_rsa

chmod 600 ~/.ssh/id_rsa.pub

将本机的id_rsa.pub 复制公钥到服务器(前提本机也生成了公钥和私钥)

vi ~/.ssh/authorized_keys
chmod 644 ~/.ssh/authorized_keys

authorized_keys文件的权限要设为644,即只有文件所有者才能写。如果权限设置不对,SSH 服务器可能会拒绝读取该文件。

修改ssh配置文件取消root登录

sudo vim /etc/ssh/sshd_config
# PermitRootLogin并将其值设置为no 不允许root登录
# 设置PasswordAuthentication no 不允许密码登录

#重启ssh服务
systemctl restart sshd
service sshd restart

Lnmp环境安装

lnmp即linux+nginx+mysql+php 我使用的是lnmp一键安装包

进入 lnmp.org 可以进行查看

也可直接使用下发代码

# 切换root账户
sudo -i 

wget https://soft.lnmp.com/lnmp/lnmp2.1.tar.gz -O lnmp2.1.tar.gz && tar zxf lnmp2.1.tar.gz && cd lnmp2.1 && ./install.sh lnmp

安装的配置

PixPin_2024-11-27_21-06-40

可参考官网的配置方式

等待安装成功

28eb888de6fb332aecc16ff6f26146d0

增加站点

lnmp vhost add

配置信息可参考下方 也可查看lnmp添加站点

PixPin_2024-11-27_21-09-49

部署wordpress

普通用户使用以下命令需要使用sudo提权

cd /home/wwwroot/wordpress
curl -O https://cn.wordpress.org/wordpress-6.7.1-zh_CN.tar.gz
tar -xzvf wordpress-6.7.1-zh_CN.tar.gz
mv wordpress/* .
rmdir wordpress
# 提权
chmod -R 755 *
find . -type f -not -name '.user.ini' -exec chmod 644 {} +
# 修改myqsl允许最大包

vim /etc/my.cnf
# max_allowed_packet = 16M 设置为16M
systemctl restart mysql.service

指令的作用如下:

  • chmod -R 755 *:将所有文件和目录的权限设置为 755。
  • find . -type f -exec chmod 644 {} +:将所有文件的权限设置为 644。

配置nginx

将default域的路径改为worepress的路径

cd /usr/local/nginx/conf
sudo vim nginx.conf

image-20241127212028825

刷新nginx

sudo systemctl reload nginx

输入自己服务器ip地址 配置wordpress

备份插件:wpvivid Backup

为了让界面可以访问 我们需要配置伪静态来实现访问

location / {
         # file ($uri) or directory ($uri/)? if not, redirect to /index.php + query string
         try_files $uri $uri/ /index.php?$args;
         index  index.html index.htm index.php;
        }

最开始建议配上方伪静态等调试完毕之后可以为了安全考虑使用下方规则

如果你允许ip地址访问又强制https可以使用以下规则

 location /
            {
           return 301 https://$host$request_uri;
        }

如果不需要ip地址访问可以将其重定向到指定网站 需要提前好配置域名解析

return 301 https://blog.aboyzy.top;
SSL配置

以下命令需要在root权限下进行 普通用户注意提权

因为在前边可能没有配置好站点或者域名解析,所以我们在之前创建站点的时候ssl访问设置为了no。 为了网站安全考虑我们现在需要给其加上证书。可以选择本地 和自动配发免费证书。我是用的是自动配发的证书。脚本支持自动acme续期

请提前设置好域名DNS解析 ,并等待解析生效
lnmp ssl add

image-20241130190004585

root查看自动定时任务自动续期 查看是否有定时任务

crontab -l 

配置完成之后需要配置伪静态否则界面无法访问

vim /usr/local/nginx/conf/vhost/blog.aboyzy.top.conf

在监听443的server中增加

 location / {
         try_files $uri $uri/ /index.php?$args;
         index  index.html index.htm index.php;
        }

刷新nginx

sudo nginx -t 
sudo systemctl reload nginx

配置之后如果是wordpress则需要在后台管理界面将网站地址改为与域名相同的地址

安全部分配置

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
                 valid_referers none blocked blog.aboyzy.top *.aboyzy.top;
                if ($invalid_referer) {
                            return 403;
                                }
        expires      30d;
        }

alist

新增站点跟上边wordpress一样lnmp vhost add然后它不需要mysql

创建完站点后进入站点目录

安装程序 后边更的是站点的目录 root账户执行

curl -fsSL "https://alist.nn.ci/v3.sh" | bash -s install /站点目录

根据提示设置密码 域名解析提前设置好

配置ssl 之后 lnmp ssl add http要重定向到https

443 监听配置以下规则就可以

location / {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Range $http_range;
    proxy_set_header If-Range $http_if_range;
    proxy_redirect off;
    proxy_pass http://127.0.0.1:5244;
    # 上传的最大文件尺寸
    client_max_body_size 20000m;
}
最后更新于 2024-11-30