Nginx基础入门与应用
基本操作
安装Nginx之后,可以按照以下步骤进行操作:
- 启动Nginx服务:使用命令启动Nginx
sudo systemctl start nginx_service
或
sudo service nginx_service start
- 检查Nginx运行状态:
sudo systemctl status nginx_service
-
配置Nginx:编辑配置文件位于
/etc/nginx/nginx.conf。 -
重新加载配置:修改配置文件后需要重新加载以使更改生效
sudo systemctl reload nginx_service
- 停止Nginx服务:
sudo systemctl stop nginx_service
或
sudo service nginx_service stop
注意:确保防火墙开放了必要的端口(如80端口),以便外部访问。遇到问题时,查看日志文件 /var/log/nginx/error.log 获取更多信息。
Nginx作为Web服务器的功能
Nginx在Web服务器中的角色包括:
- 静态资源服务器
- 高效提供静态内容(HTML、CSS、JavaScript、图片等)
- HTTP协议支持
- 支持多种HTTP版本(HTTP/1.0, HTTP/1.1, HTTP/2)
- SSL/TLS支持
- 处理HTTPS请求,承担SSL/TLS加密任务
- 缓存机制
- 提供缓存功能,减少后端负载并加快响应速度
- 安全特性
- 实现访问控制和限流等功能
- 反向代理
- 将请求转发给后台的应用服务器,并支持负载均衡
- 负载均衡器
- 在多个后端服务器间分配流量
配置静态资源服务
配置Nginx为静态资源服务器的基本步骤如下:
- 在
nginx.conf的 http 块中添加 server 块:
server {
listen 80;
server_name sample.com;
root /var/www/sample_site;
}
- 在 server 块内定义 location 块来指定静态资源路径:
location /static/ {
alias /data/static_files/;
autoindex on;
}
- 使用正则表达式匹配特定类型的文件:
location ~* \.(ico|css|js)$ {
expires 7d;
add_header Cache-Control "public";
}
安全设置示例
例如,启用SSL/TLS:
server {
listen 443 ssl;
server_name secure-sample.com;
ssl_certificate /etc/ssl/certs/mycert.crt;
ssl_certificate_key /etc/ssl/private/mykey.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
}
对于强制跳转至HTTPS:
server {
listen 80;
server_name secure-sample.com;
return 301 https://$host$request_uri;
}
其中 $host 和 $request_uri 是Nginx内置变量,分别表示主机名和请求的URI。