0、Nginx 默认配置
Nginx的默认配置位于nginx.conf文件中。根据安装方式和操作系统不同,它的位置可能略有不同,一般在以下目录中:
- Linux:/etc/nginx/nginx.conf
- Windows:C:\nginx\conf\nginx.conf
以下是Nginx默认配置的示例:
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
上面的配置文件定义了Nginx的一些基本选项,如用户、工作进程数、日志文件位置等。它还定义了NGINX事件块,并为HTTP请求提供了一些基本配置,如文件类型映射、日志格式、发送文件等。
请注意,这是Nginx默认的配置,您可以根据您的需求对其进行修改。在生产环境中,建议您对配置文件进行定制以实现最佳性能。
为了使Nginx适合您的特定需求,您可以对配置文件进行更改。以下是一些常见的配置任务:
-
更改端口:默认端口为80,但您可以更改它来避免与其他服务的冲突。
-
指定服务器名称:通过指定服务器名称,您可以为您的服务器创建自定义DNS名称。
-
配置虚拟主机:通过配置虚拟主机,您可以同时在一台服务器上运行多个网站。
-
启用SSL/TLS:通过启用SSL/TLS,您可以加密您的网站数据并保护它们免受黑客攻击。
-
配置代理:通过配置代理,您可以将请求从一台服务器转发到另一台服务器。
这些是Nginx配置的一些基本任务,您可以通过搜索互联网获得有关如何进行这些任务的详细信息。
1、 Nginx 前端部署基本配置
在 NGINX中 配置前后端分离时,前端部署基本配置的示例:
server {
listen 80;
server_name example.com;
root /path/to/your/frontend;
location / {
try_files $uri $uri/ /index.html;
}
location /api {
proxy_pass http://backend_server:port;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
上面的配置定义了一个服务器,监听80端口,服务器名为example.com。前端文件的根目录是/path/to/your/frontend。当用户请求根目录时,NGINX将尝试使用try_files命令提供请求的文件。如果文件不存在,则返回/index.html。
当用户请求/api时,请求将被代理到后端服务器的相应端口,并设置了一些代理头,如Host、X-Real-IP、X-Forwarded-For等。这样,后端服务器就能获取到正确的客户端信息。
2、Nginx 配置 url 自动加上时间戳查询字符串(query string)
在 nginx 配置中使用 $arg_timestamp 变量实现 url 自动加上时间戳查询字符串(query string)。以下是示例配置:
location / {
if ($args = "") {
rewrite ^ /?timestamp=$time_iso8601 permanent;
}
proxy_pass http://your_upstream;
}
上面的配置使用了$args变量检查当前请求是否存在查询字符串。如果不存在,则使用rewrite命令将请求重写为带有timestamp查询字符串的请求。$time_iso8601变量表示当前时间,并以ISO 8601格式表示。