ngnix简单介绍

简单使用

安装Nginx后,可以通过以下步骤使用Nginx服务:

1.启动Nginx: 可以使用以下命令启动Nginx服务:

sudo systemctl start nginx

或者

sudo service nginx start

 2.验证Nginx是否正常运行:

sudo systemctl status nginx

3. 配置Nginx配置文件:只要是在 /etc/nginx/nginx.conf该文件下。具体配置方法见下文。

4.重新加载Nginx配置:在修改了Nginx配置文件后,需要重新加载配置以使更改生效。可以使用以下命令重新加载Nginx配置:

sudo systemctl reload nginx

 5.停止Nginx:可以使用以下命令停止Nginx服务:

sudo systemctl stop nginx

或者

sudo service nginx stop

需要注意的是,在使用Nginx时,可能需要在防火墙中打开相应的端口(例如80端口),以允许外部访问。另外,如果出现问题,可以查看Nginx日志文件/var/log/nginx/error.log以获取更多信息。

ngnix实现web服务器

Nginx在构建Web服务器时扮演了以下几个重要角色:

  1. 静态文件服务器
    • 高效地提供静态文件(HTML、CSS、JavaScript、图片等)
  2. HTTP服务器
    • 处理HTTP请求,提供静态文件服务
    • 支持多种HTTP协议版本(HTTP/1.0, HTTP/1.1, HTTP/2)
  3. SSL/TLS终端
    • 处理HTTPS连接,卸载SSL/TLS加密解密工作
  4. 缓存服务器
    • 缓存静态内容和动态内容,减轻后端服务器压力
    • 提高响应速度
  5. 安全防护
    • 提供访问控制、限流等安全功能
    • 可以配置为Web应用防火墙(WAF)
  6. 反向代理服务器
    • 将客户端请求转发到后端应用服务器
    • 实现负载均衡,分发流量到多个后端服务器
  7. 负载均衡器
    • 在多个后端服务器之间分配请求
    • 支持多种负载均衡算法

静态文件服务

Nginx配置静态文件服务的主要步骤如下:

  • 在nginx.conf的http块内添加server块:
server {
    listen 80;
    server_name example.com;
    root /var/www/html/site;
    
    # 其他配置...
}
  • server块内添加location块,指定静态文件目录:
location / {
    root /path/to/your/files;
    index index.html index.htm;
}
  1. root指令指定静态文件的根目录。
  2. index指令指定默认索引文件。
  3. 可以添加其他配置,如:
location /images/ {
    root /var/www/images;
    autoindex on;
}
  1. location /images/: 匹配所有以 /images/ 开头的 URL 请求。
  2. root /var/www/images;: 设置文件系统的根目录。对于 /images/ 的请求,Nginx 会在 /var/www/images 目录中查找文件。
  3. autoindex on;: 启用目录列表。如果请求的是一个目录而不是具体文件,Nginx 会显示该目录的内容列表。
location ~ \.(gif|jpg|png)$ {
    root /var/www/images;
    expires 30d;
}
  1. location ~ \.(gif|jpg|png)$: 使用正则表达式匹配所有以 .gif、.jpg 或 .png 结尾的 URL。
  2. root /var/www/images;: 同样设置文件系统的根目录。
  3. expires 30d;: 设置 HTTP 响应的 Expires 和 Cache-Control 头,告诉客户端可以缓存这些文件 30 天。

实际效果:

  • 如果请求 http://yourdomain.com/images/,Nginx 会显示 /var/www/images 目录的内容列表。
  • 如果请求 http://yourdomain.com/images/pic.jpg,Nginx 会从 /var/www/images/pic.jpg 提供文件,并设置 30 天的缓存。
  • 对于 .gif、.jpg、.png 文件的请求,无论它们在哪个路径下,都会应用 30 天的缓存策略。

安全配置服务

比如SSL/TLS加密:

server {
    listen 443 ssl;
    server_name example.com;

    ssl_certificate /path/to/certificate.crt;
    ssl_certificate_key /path/to/certificate.key;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;
}
certificate.crt,certificate.key可以通过商业证书颁发机构(CA)购买,通过云服务提供商获取,如果只是用于内部测试环境,可以使用OpenSSL等工具生成自签名证书。

再比如强制HTTPS:

在HTTP server块中添加重定向:

server {
    listen 80;
    server_name example.com;
    return 301 https://$server_name$request_uri;
}

其中return 301 https://$server_name$request_uri:

  • return 301 指令用于发出HTTP 301永久重定向。
  • https://$server_name$request_uri 构建重定向的目标URL:
  1. https:// 指定目标协议为HTTPS。
  2. $server_name 是一个Nginx变量,代表当前请求的服务器名称(即example.com)。
  3. $request_uri 是另一个Nginx变量,代表请求的完整URI,包括路径和查询字符串。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值