Nginx 基础配置——server模块内

Posted by

1.location:

location匹配命令:

① ~

~ :波浪线代表执行一个正则匹配,区分大小写

② ~*

~* :表示,执行一个正则匹配,不区分大小写

③ ^~

^~ :表示普通字符匹配,如果该项匹配,则只匹配该项,不匹配别的选项,一般用来匹配目录

④ =

= :进行普通字符精确匹配

⑤ @

@ :”@” 定义一个命名的 location,使用在内部定向时,例如 error_page, try_files

location / {
    # 匹配任何请求,因为所有的请求均是以/开头
    # 但是更长字符匹配或者正则正则表达式匹配会优先匹配
}

location = / {
    # 只匹配"/"
}

location ^~ /test {
    # 匹配任何以/test开头的请求,并停止匹配其他的location
}

location ~* .(gif|jpg|jpeg)$ {
    # 匹配以gif,jpg,jpeg结尾的请求
    # 但是所有以/test开头的请求这个location无法进行处理,会交由前面那个location进行处理
}

2.listen

nginx监听的端口,

listen 8080;
#监听8080端口(IPv4)

listen [::]:8080;
#监听8080端口(IPv6)

listen 8080 http2;
#以http2监听8080端口(IPv4)

listen 8080 ssl;
#监听https 8080端口 (IPv4)

3.server_name

只监听服务的域名,利用不同的server_name我们可以实现端口复用。

server {
    listen 443 ssl;
    server_name abc.example.com;
    ssl_certificate /abc/ssl/abc.crt;
    ssl_certificate_key /abc/ssl/abc.key;
    ssl_ciphers TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+ECDSA+AES128:EECDH+aRSA+AES128:EECDH+ECDSA+AES256:EECDH+aRSA+AES256:!MD5;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_session_timeout 5m;
    root /abc/html;
    index index.html
}

server {
    listen 443;
    server_name bcd.example.com;
    root /bcd/html;
    index index.html;
}

4.root

指定网站对应的根目录

root /var/www/html;

5.index

指定访问对应目录时默认打开的文件

index index.php index.html;