nginx从安装到配置详细说明
安装
在 Ubuntu/Debian 上通过以下命令安装 nginx:
sudo apt-get update
sudo apt-get install nginx
在 CentOS/Fedora 上通过以下命令安装 nginx:
sudo yum install nginx
安全配置
当我们在互联网上使用 nginx 的时候,安全配置非常重要。以下是一些常见的安全配置:
隐藏版本号
nginx 默认的 http 头中会包含版本号,攻击者可以利用这个版本号来尝试攻击 nginx。因此,我们可以在 nginx 的配置文件中通过以下指令来隐藏版本号:
server_tokens off;
限制请求速率
攻击者可以通过发送大量的请求来拒绝服务,我们可以通过限制每个 IP 的请求速率来阻止这种攻击。下面是一个例子,我们每秒钟只允许访问 100 个请求:
limit_req_zone $binary_remote_addr zone=one:10m rate=100r/s;
server {
location / {
limit_req zone=one burst=10;
}
}
去除不必要的模块
所有的模块都需要内存和 CPU 来运行,因此我们可以通过去除不必要的模块来提高 nginx 的性能。
防盗链
防盗链是指限制只有特定的网站才能加载您的资源,这对于一些会员网站来说很重要,因为他们希望只有付费的用户才能使用他们的资源。以下是一个例子,限制只有指定的域名才能访问我们的资源:
location ~* \.(gif|jpg|jpeg|png)$ {
valid_referers none blocked server_names *.example.com;
if ($invalid_referer) {
return 403;
}
}
动静分离
我们可以将静态资源和动态资源分开处理,以提高网站的性能。以下是一个例子:
location /static {
alias /var/www/static;
}
location / {
proxy_pass http://localhost:8000;
}
其中 /static 目录指向静态资源的路径,/ 目录是动态资源的路径。在这个例子中,静态资源将被直接访问,而动态资源将通过代理服务器访问。
配置 HTTPS
配置 HTTPS 需要 SSL 证书,可以通过以下步骤获取:
- 在 https://letsencrypt.org/ 上注册并获取 SSL 证书
- 安装 Certbot 工具
- 使用 Certbot 工具生成 SSL 证书
以下是一个示例 HTTPS 配置:
server {
listen 443 ssl;
server_name 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://localhost:8000;
}
}
性能优化
以下是一些常用的性能优化指令:
尽可能禁用访问日志
日志文件非常大,因此您可以考虑禁用访问日志或者使用代理服务器将日志文件转移到其他位置。
access_log off;
使用 Gzip 压缩
使用 Gzip 压缩可以减少网络带宽和传输时间。
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
启用缓存
启用缓存可以减少对后端服务器的请求,从而提高网站的性能。
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=mycache:10m inactive=60m;
proxy_cache_key "$scheme$request_method$host$request_uri";
proxy_cache_valid 200 60m;
proxy_cache_bypass $http_pragma;
proxy_cache_revalidate on;
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:nginx从安装到配置详细说明(安装,安全配置,防盗链,动静分离,配置 HTTPS,性能优化) - Python技术站