前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >常用的一些Nginx配置

常用的一些Nginx配置

作者头像
知识分子没文化
发布2023-07-01 15:59:37
2600
发布2023-07-01 15:59:37
举报
文章被收录于专栏:Roookie博客Roookie博客

1、监听端口

代码语言:javascript
复制
server {
    # 用于HTTP协议
    listen 80;

    # 用于HTTPS协议
    listen 443 ssl;

    # 用于HTTP2
    listen 443 ssl http2;

    # 使用IPv6监听80端口
    listen [::]:80;

    # 仅使用IPv6
    listen [::]:80 ipv6only=on;
}

2、日志功能

Nginx的日志分为两种:access_log (访问日志)和 error_log(错误日志)。

对于日志的格式,Nginx提供了一种名为 combine 的格式,如果没有明确指定日志格式则默认使用该格式。

如果不使用 combine 格式的话,可以使用 log_format 指令来自定义,其具体用法参考Nginx日志配置详解或者官方文档:HttpLog模块-Nginx中文文档

2.1、访问日志

访问日志主要记录客户端的请求,客户端向Nginx服务器发起的每一次请求都记录在这里。客户端IP,浏览器信息,referer,请求处理时间,请求URL等都可以在访问日志中得到。

代码语言:javascript
复制
server {
    # 访问日志文件的写入位置,相对或绝对路径
    access_log /path/to/file.log;

    # 选择访问日志功能的开启(on)或关闭(off)
    access_log on;
}
2.2、错误日志

错误日志记录服务器和请求处理过程中的错误信息。

代码语言:javascript
复制
server{
    # 错误日志的写入位置
    error_log logs/error.log error;
    # 错误日志的级别,分为 debug, info, notice, warn, error, crit, alert,emerg,其取值范围是按紧急程度从低到高排列
    # 只有日志的错误级别等于或高于level指定的值才会写入错误日志中。默认值是error
    error_log file [level];
}

3、配置域名

代码语言:javascript
复制
server {
    # 监听domain.com
    server_name domain.com;

    # 监听多个域名
    server_name domain.com www.domain.com;

    # 监听所有域名
    server_name *.domain.com;

    # 监听所有顶级域名
    server_name domain.*;

    # 监听未指定的主机名(比如侦听IP地址本身)
    server_name "";  
}

4、静态资源

代码语言:javascript
复制
server {
    listen 80;
    server_name domain.com;

    location / {
        # 设置网站的根目录    
        root /path/to/website;
    } 
}

5、重定向

5.1、网站根目录重定向
代码语言:javascript
复制
server {
    listen 80;
    server_name www.domain.com;
    # 将 www.domain.com 进行301重定向,跳转至 http://domain.com$request_uri
    return 301 http://domain.com$request_uri;
}
5.2、特定目录重定向
代码语言:javascript
复制
server {
    listen 80;
    server_name www.domain.com;

    # 将链接 http://www.domain.com/redirect-url 进行301重定向,跳转到http://otherdomain.com
    location /redirect-url {
        return 301 http://otherdomain.com;
    }
}

如将 domain.com 永久重定向到 www.domain.com:

代码语言:javascript
复制
server {
    listen 80;
    server_name domain.com;
    return 301 http://www.$host$request_uri;
}

6、反向代理

反向代理 - 维基百科,自由的百科全书 (wikipedia.org)

Reverse proxy - Wikipedia

代码语言:javascript
复制
server {
    listen 80;
    server_name domain.com;

    # 对特定主机的3000端口进行反向代理
    location / {
        proxy_pass http://0.0.0.0:3000;
    }
}

7、负载均衡

负载均衡 - 维基百科,自由的百科全书 (wikipedia.org)

Load balancing (computing) - Wikipedia

代码语言:javascript
复制
upstream node_js {
    server 0.0.0.0:3000;
    server 0.0.0.0:4000;
    server 123.131.121.122;
}

server {
    listen 80;
    server_name domain.com;

    location / {  
        proxy_pass http://node_js;
    }
}

8、SSL配置

代码语言:javascript
复制
server {
    listen 443 ssl;
    server_name domain.com;

    ssl on;
    # 证书文件,格式不一定都是pem,还可能是其他格式
    ssl_certificate /path/to/cert.pem;
    # 秘钥文件,格式不一定都是pem,还可能是其他格式
    ssl_certificate_key /path/to/privatekey.pem;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_session_timeout 1h;
    ssl_session_cache shared:SSL:50m;
    add_header Strict-Transport-Security max-age=15768000;
}

# 将HTTP永久重定向到HTTPS
server {
    listen 80;
    server_name domain.com;
    return 301 https://$host$request_uri;
}

部分内容转载修改自: Nginx Cheatsheet (hashnode.dev) Nginx日志配置详解_biubiuli的博客-CSDN博客_nginx 日志配置

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、监听端口
    • 2、日志功能
      • 3、配置域名
        • 4、静态资源
          • 5、重定向
            • 6、反向代理
              • 7、负载均衡
                • 8、SSL配置
                相关产品与服务
                负载均衡
                负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档