Ubuntu 系统中安装 Nginx

步骤 1:更新软件包列表

在安装前,先更新系统软件包列表:

复制代码
sudo apt update

步骤 2:安装 Nginx

通过 apt 直接安装 Nginx:

复制代码
sudo apt install nginx -y

步骤 3:验证安装

安装完成后,检查 Nginx 服务状态:

复制代码
sudo systemctl status nginx

正常输出应显示 active (running)。

步骤 4:配置防火墙(可选)

如果启用了 ufw 防火墙,需允许 HTTP/HTTPS 流量:

复制代码
sudo ufw allow 'Nginx Full'  # 允许 HTTP (80) 和 HTTPS (443)
sudo ufw reload

步骤 5:测试访问

打开浏览器访问服务器的 IP 或域名(如 http://your-server-ip),如果看到 "Welcome to Nginx!" 页面,表示安装成功。

也可以通过命令行快速验证:

复制代码
curl http://localhost

步骤 6:关键文件与目录

配置文件目录:/etc/nginx/

主配置文件:/etc/nginx/nginx.conf

站点配置:/etc/nginx/sites-available/ 和 /etc/nginx/sites-enabled/

默认网站根目录:/var/www/html/

日志文件:

访问日志:/var/log/nginx/access.log

错误日志:/var/log/nginx/error.log

步骤 7:管理 Nginx 服务

启动/停止/重启:

复制代码
sudo systemctl start nginx    # 启动
sudo systemctl stop nginx     # 停止
sudo systemctl restart nginx  # 重启

重新加载配置(不中断服务):

复制代码
sudo systemctl reload nginx

设置开机自启:

复制代码
sudo systemctl enable nginx

步骤 8:安装最新版 Nginx(可选)

如果默认仓库的版本较旧,可以通过官方仓库安装最新版:

添加 Nginx 官方仓库:

复制代码
sudo apt install curl gnupg2 -y
curl -fsSL https://nginx.org/keys/nginx_signing.key | sudo gpg --dearmor -o /usr/share/keyrings/nginx-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/ubuntu $(lsb_release -cs) nginx" | sudo tee /etc/apt/sources.list.d/nginx.list

更新并安装:

复制代码
sudo apt update
sudo apt install nginx -y

常见问题

1. 端口冲突

如果无法启动,检查是否有其他程序占用 80/443 端口:

复制代码
sudo ss -tulpn | grep ':80\b'

2. 配置错误

修改配置后,使用以下命令测试语法:

复制代码
sudo nginx -t

3. 自定义网站

创建新站点配置文件:

复制代码
sudo nano /etc/nginx/sites-available/your-site.conf

创建软链接启用配置:

复制代码
sudo ln -s /etc/nginx/sites-available/your-site.conf /etc/nginx/sites-enabled/

后续操作建议 配置 HTTPS:使用 Let's Encrypt 免费证书(安装 certbot)。

性能优化:调整 worker_processes 和 worker_connections(在 /etc/nginx/nginx.conf

中)。

安全加固:隐藏 Nginx 版本号、限制访问敏感路径等。

通过以上步骤,你可以快速完成 Nginx 的安装和基础配置。

相关推荐
+VX:Fegn08957 分钟前
计算机毕业设计|基于springboot + vue图书管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
杨云龙UP1 小时前
MySQL 8.0.x InnoDB 写入链路优化:Redo Log 与 Buffer Pool 扩容与缓冲区调优实战记录-20251029
linux·运维·数据库·sql·mysql
黄俊懿2 小时前
【深入理解SpringCloud微服务】Seata(AT模式)源码解析——开启全局事务
java·数据库·spring·spring cloud·微服务·架构·架构师
我命由我123452 小时前
python-dotenv - python-dotenv 快速上手
服务器·开发语言·数据库·后端·python·学习·学习方法
繁星蓝雨2 小时前
Qt优雅的组织项目结构三(使用CMakeLists进行模块化配置)——————附带详细示例代码
开发语言·数据库·qt
Jerry.张蒙3 小时前
SAP业财一体化实现的“隐形桥梁”-价值串
大数据·数据库·人工智能·学习·区块链·aigc·运维开发
无名修道院3 小时前
DVWA 靶场搭建:Windows11(phpstudy 搭建)(步骤 + 截图 + 常见问题)
数据库·网络安全·渗透测试·靶场·php·dvwa·phpstudy
CodeAmaz5 小时前
MySQL 事务隔离级别详解
数据库·mysql·事务隔离级别
千寻技术帮5 小时前
10398_基于SSM的教学评价管理系统
数据库·mysql·毕业设计·ssm·教学评价
晨星3345 小时前
使用 IntelliJ IDEA 轻松连接 Java 与 MySQL 8 数据库
java·开发语言·数据库