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服务器。

  1. 依次点击: 云服务器 ECS -> 网络与安全 -> 安全组。

这里应该会有一个系统默认配置的安全组,描述为"System created security group."。这个安全组是你购买ECS服务器后,这个服务初始化时自动配置的。

  1. 点击这个安全组右侧的“管理规则”,进入配置详情页。

file

  1. 点击: 入方向 -> 快速添加

file

  1. 勾选“HTTP (80)”后,点击“确定”。

file

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.

排查方式:

  1. 输入 nginx -t 命令,如果反回 successful表示配置文件无错误,否则说明配置文件有错误,检查对应的配置。
  2. 查看nginx服务状态,输入 systemctl status nginx.service 命令,如果显示“Active: active (running)”则表示服务正常,否则需要查看日志。
  3. 根据log提示做进步的排查

大家好,我是陌尘。

IT从业10年+, 北漂过也深漂过,目前暂定居于杭州,未来不知还会飘向何方。

搞了8年C++,也干过2年前端;用Python写过书,也玩过一点PHP,未来还会折腾更多东西,不死不休。

感谢大家的关注,期待与你一起成长。


【SunLogging】

SunLogging

扫码二维码,关注微信公众号,阅读更多精彩内容