1. 本网站的系统架构
- 网站示例: sunlogging.com
- 服务器: 阿里云ECS
- 服务器系统: Ubuntu 24.04 LTS
- 博客框架: Hexo
- 网站主题: Volantis
2. nginx介绍
apache httpd和nginx都是web服务器,负责网站的托管、路由等服务。nginx的优点是占用内存少、并发能力强、支持热部署、高度模块化的设计。
3. (Ubuntu)安装nginx
# 更新软件包
sudo apt update
# 安装nginx
sudo apt install nginx
# 检查安装是否成功,如果显示具体的版本号则表示安装成功
nginx -v
# nginx version: nginx/1.24.0 (Ubuntu)
4. 常用命令
# 检查配置文件是否有语法错误
nginx -t
# 查看nginx服务是否运行
sudo systemctl status nginx
# 启动Nginx服务
sudo systemctl start nginx
# 停止Nginx服务
sudo systemctl stop nginx
# 热加载,重新加载配置文件
sudo systemctl reload nginx
5. 配置nginx
5.1. 创建网站根目录和首页
# 专门为sunlogging.com站点创建一个部署目录/home/www/hexo
mkdir -p /home/www/sunlogging
# 进入网站根目录
cd /home/www/sunlogging
# 创建网站首页
touch index.html
用vim编辑index.html文件,写入内容:
hello sunlogging!
5.2. 新建配置文件
nginx的配置路径在: /etc/nginx/sites-enabled/default ,这是一个软连接:
root@iZwz9dt15jb4zcxtk2aeq6Z:/etc/nginx/sites-available# ls -lh /etc/nginx/sites-enabled/default
lrwxrwxrwx 1 root root 34 May 21 17:23 /etc/nginx/sites-enabled/default -> /etc/nginx/sites-available/default
创建一个sunlogging.com网站的配置文件:
cd /etc/nginx/sites-available
touch sunlogging
5.3. 设置配置内容
用vim编辑 /etc/nginx/sites-available/sunlogging 文件,设置如下配置:
server {
# 监听端口
listen 80;
# 网站域名
server_name sunlogging.com www.sunlogging.com;
location / {
# 站点根路径
root /home/www/sunlogging;
# 网站主页指向的文件
index index.html index.htm;
}
}
5.4. 修改 /etc/nginx/sites-enabled/default 软连接
# 修改软连接
ln -snf /etc/nginx/sites-available/sunlogging /etc/nginx/sites-enabled/default
5.5. 重新加载nginx配置
sudo systemctl reload nginx
6. 开启服务器的80端口
nginx服务的默认端口是80,而阿里云默认是禁止80端口访问权限的,所以我们要为实例手动添加安全组,让阿里云给相应的端口和IP放行。该步骤非常重要,若不手动配置,我们将无法通过“公网IP+端口”的方式访问我们的ECS服务器。
- 依次点击: 云服务器 ECS -> 网络与安全 -> 安全组。
这里应该会有一个系统默认配置的安全组,描述为"System created security group."。这个安全组是你购买ECS服务器后,这个服务初始化时自动配置的。
- 点击这个安全组右侧的“管理规则”,进入配置详情页。
- 点击: 入方向 -> 快速添加
- 勾选“HTTP (80)”后,点击“确定”。
7. 测试验证
打开浏览器,地址栏输入 http://服务器的公网IP:80
,如果看到“hello sunlogging!”字样,则表示nginx配置成功。
8. nginx常见问题
8.1. nginx.service failed
如果出现以下报错:
Job for nginx.service failed.
See "systemctl status nginx.service" and "journalctl -xeu nginx.service" for details.
排查方式:
- 输入
nginx -t
命令,如果反回 successful表示配置文件无错误,否则说明配置文件有错误,检查对应的配置。 - 查看nginx服务状态,输入
systemctl status nginx.service
命令,如果显示“Active: active (running)”则表示服务正常,否则需要查看日志。 - 根据log提示做进步的排查
大家好,我是陌尘。
IT从业10年+, 北漂过也深漂过,目前暂定居于杭州,未来不知还会飘向何方。
搞了8年C++,也干过2年前端;用Python写过书,也玩过一点PHP,未来还会折腾更多东西,不死不休。
感谢大家的关注,期待与你一起成长。
【SunLogging】
扫码二维码,关注微信公众号,阅读更多精彩内容