Ubuntu 安装 Nginx
Nginx 是一个高性能的 Web 服务器和反向代理服务器,同时也可以用作负载均衡器和 HTTP 缓存。
Nginx 的主要用途
用途 | 说明 |
---|---|
Web服务器 | 提供网页服务,处理用户的 HTTP 请求,返回 HTML、CSS、JS、图片等静态资源。 |
反向代理服务器 | 将用户请求转发到后端服务器(如 Tomcat、Flask、Spring Boot),隐藏真实后端。 |
负载均衡器 | 把用户请求平均分发到多个后端服务器,提高处理能力和可用性。 |
缓存服务器 | 缓存静态内容或后端响应,加快访问速度,减轻后端压力。 |
安装 Nginx
sudo apt-get update
sudo apt-get install -y nginx
Nginx 配置路径
内容 | 路径 |
---|---|
nginx 根目录 | /etc/nginx |
配置文件 | /etc/nginx/nginx.conf |
站点配置目录 | /etc/nginx/sites-available/ |
启用的站点目录 | /etc/nginx/sites-enabled/ |
默认网页目录 | /var/www/html |
日志文件 | /var/log/nginx/access.log 和 error.log |
/etc/nginx/nginx.conf:文件不用动,它的作用是加载其他子配置文件。
/etc/nginx/sites-available/:所有的子配置文件都存放在这个目录,相当于候选配置。
/etc/nginx/sites-enabled/:Nginx 启动时只会读取这个目录中的配置文件,如果想让候选配置生效,就把候选配置通过软链接,连接到这个目录。
配置文件
我们要添加一个配置,要怎么弄?
1. 在 /etc/nginx/sites-available/ 目录下创建一个文件,这个文件名称自定义,可以叫任何名字(比如:default、example.com、api.conf,都可以)。文件的内容是一个 server 区块,用来配置某个网站或服务的监听方式、路径、静态目录等。
sudo vim /etc/nginx/sites-available/my-site
/etc/nginx/sites-available/my-site 文件内容如下:
server {listen 80;server_name localhost;root /var/www/html;index index.html;location / {try_files $uri $uri/ =404;}
}
参数说明 | 含义 |
---|---|
listen 80; | 监听 80 端口(HTTP 默认端口,HTTPS端口443) |
server_name localhost; | 设置主机名(用域名部署时改成你的域名) |
root /var/www/html; | 网站根目录,里面应该放 index.html 等文件 |
index index.html index.htm; | 设置默认首页文件 |
location / | 匹配所有路径请求 |
try_files $uri $uri/ =404; | 如果文件存在就加载文件,不存在就返回 404 |
2. 保存退出后,再用符号链接让它生效:
添加软链接
sudo ln -s /etc/nginx/sites-available/my-site /etc/nginx/sites-enabled/
# 移除软链接
sudo rm /etc/nginx/sites-enabled/my-site
3. 检查配置文件是否正确,然后重启 nginx 服务
sudo nginx -t
sudo systemctl reload nginx
4. 把静态文件资源,例如 index.html,放到 root /var/www/html 这里配置的目录
5. 然后浏览器输入 http://ip:port 访问
Nginx 常用命令
启动 Nginx:sudo systemctl start nginx
停止 Nginx:sudo systemctl stop nginx
重启 Nginx:sudo systemctl restart nginx
重载配置(不中断服务):sudo systemctl reload nginx
查看 Nginx 状态:sudo systemctl status nginx
开启开机自启动:sudo systemctl enable nginx
禁用开机启动:sudo systemctl disable nginx
查看 Nginx 版本:nginx -v
查看 Nginx 安装的模块:nginx -V
检查配置文件是否有语法错误:sudo nginx -t
启动 Nginx(等同于 systemctl start nginx):sudo nginx
停止 Nginx(快速关闭):sudo nginx -s stop
优雅关闭(处理完当前请求再退出):sudo nginx -s quit
重载配置(推荐使用):sudo nginx -s reload
更多配置请查看:nginx配置