nginx 常用配置记录揭秘
2023-11-25 00:08:11
前言
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 的强大功能。