Nginx的一些常用配置汇总
Nginx是一个高性能的HTTP和反向代理服务器。在使用Nginx的过程中,下面这些常用的配置是必不可少的。
1. 为域名配置SSL证书
如果您的网站需要使用SSL证书来保护数据传输的安全,您需要为您的域名配置SSL证书。Nginx支持使用Let's Encrypt等免费的SSL证书。您可以通过以下步骤配置您的SSL证书。
首先,您需要安装certbot:
sudo apt-get update
sudo apt-get install certbot
安装完成后,您可以使用以下命令配置证书:
sudo certbot certonly --nginx -d example.com -d www.example.com
其中,example.com是您的域名。这个命令会自动检测您的Nginx配置,并为您的域名生成SSL证书。
2. 为静态资源添加缓存
如果您的网站包含大量的静态资源,如图片、CSS和JavaScript文件,为这些资源添加缓存可以显著提高网站的性能。可以使用以下配置为这些资源添加缓存:
location ~* \.(css|js|png|jpg|jpeg|gif|ico)$ {
expires 30d;
add_header Cache-Control "public, no-transform";
}
这个配置会将静态资源的过期时间设置为30天,并且添加了缓存控制头。这将告诉浏览器在30天内缓存这些资源并从缓存中加载。
3. 示例配置1
下面是一个示例的Nginx配置:
user nginx;
worker_processes auto;
pid /run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
sendfile on;
gzip on;
gzip_types text/plain text/xml application/xml application/json;
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name example.com www.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
location /static/ {
alias /var/www/example/static/;
expires 30d;
add_header Cache-Control "public, no-transform";
}
}
}
这个配置文件包含了一个监听80端口的HTTP服务,以及一个监听443端口的HTTPS服务。HTTP服务会将请求重定向到HTTPS服务。HTTPS服务会将所有动态请求通过反向代理转发到8000端口,并将所有以/static/开头的请求直接映射到本地文件系统中的静态资源,其中静态资源的缓存时间为30天。
4. 示例配置2
下面是另一个示例的Nginx配置:
user nginx;
worker_processes auto;
pid /run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
sendfile on;
gzip on;
gzip_types text/plain text/xml application/xml application/json;
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name example.com www.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
location /api/ {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
location / {
root /var/www/example;
index index.html;
}
}
}
这个配置文件包含了一个监听80端口的HTTP服务,以及一个监听443端口的HTTPS服务。HTTP服务会将请求重定向到HTTPS服务。HTTPS服务会将所有以/api/开头的请求通过反向代理转发到8000端口,并将所有其他请求映射到本地文件系统中的根目录中,并使用index.html作为默认的访问文件。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Nginx的一些常用配置汇总 - Python技术站