返回

nginx 常用配置记录揭秘

前端

前言

nginx 是一款高性能、轻量级的 web 服务器,以其稳定性、可扩展性和高并发处理能力而闻名。在当今快节奏的互联网环境中,优化服务器配置对于确保网站的最佳性能和用户体验至关重要。本篇文章将重点介绍 nginx 的常用配置,帮助您对服务器进行精细调优,从而充分发挥其潜力。

开机自启 nginx

为了确保 nginx 在系统重启后自动启动,您需要配置开机自启脚本。对于不同的 Linux 发行版,开机自启脚本的路径可能略有不同。下面是几个常见的路径:

/etc/init.d/nginx
/usr/sbin/nginx
/lib/systemd/system/nginx.service

使用以下命令之一创建开机自启脚本:

sudo cp /usr/local/nginx/sbin/nginx /etc/init.d/nginx
sudo systemctl enable nginx

配置跨域

跨域资源共享 (CORS) 机制允许浏览器在不同域名之间进行 HTTP 请求。要配置 nginx 处理跨域请求,您需要添加以下指令到 nginx 配置文件:

add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Headers' 'Content-Type';
add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS';

配置 vue 项目

对于基于 vue.js 框架的项目,您需要配置 nginx 以正确处理静态文件和反向代理。以下是对 vue 项目的 nginx 配置示例:

server {
    listen 80;
    root /var/www/my-vue-app/dist;
    index index.html;

    location /api {
        proxy_pass http://localhost:3000;
    }
}

区别 host 和 http_host

host 和 http_host 变量都是 nginx 中用于存储请求主机名的变量。主要区别在于:

  • $host: 存储的是请求行中指定的原始主机名,不包括任何端口号。
  • $http_host: 存储的是请求标头中指定的完整主机名,可能包含端口号。

在大多数情况下,您可以使用 host 或 http_host 变量来引用请求的主机名。但是,如果您需要明确区分请求行和请求标头中的主机名,则使用不同的变量很重要。

实例

以下是 nginx 配置的真实示例,用于记录访问网站的 IP 地址:

server {
    listen 80;
    server_name example.com;

    location / {
        access_log /var/log/nginx/access.log;
        return 200 "$remote_addr";
    }
}

通过此配置,每次有客户端访问网站时,nginx 都会在 /var/log/nginx/access.log 文件中记录客户端的 IP 地址。

结论

nginx 的常用配置对于优化服务器性能和确保顺畅的用户体验至关重要。通过理解本篇文章中介绍的基本概念和配置示例,您可以根据自己的特定需求对 nginx 进行精细调优。从开机自启到跨域处理,再到 vue 项目配置,掌握这些配置技术将使您能够充分利用 nginx 的强大功能。