nginx

泛域名设置

参考:nginx 在 ubuntu 下的泛域名解析

nginx 中的 http 访问重定向设置

# for http request, redirect to https
server {
    listen 80;
    listen [::]:80;
    server_name xxx.com;
    return 301 https://$server_name$request_uri;
}

# https server
server {
        #listen 80 default_server;
        #listen [::]:80 default_server;

        # SSL configuration
        #

重启 nginx: service nginx restart

任意子域名跳转到指定域名

比如, 任何 *.yinhe.co 跳转到 yinhe.co, 修改 nginx 配置文件, 在 server 段内 (不是新建一个 server 段) 添加类似如下的 301 跳转:

server{
         index index.php;
        #server_name _;
        server_name yinhe.co;

        if ($host != 'yinhe.co') {return 301 https://yinhe.co$request_uri;}
}

使用 alias 添加别名访问目录

注意 alias 后面必须要用“/”结束,否则会找不到文件:

        location ^~ /uploads/ {alias /L2W_yinhe/uploads/;}

以上配置, 会在访问类似 https://yinhe.co/uploads/logo.png 的文件时, 访问 VPS 上的 /L2W_yinhe/uploads/logo.png 文件

性能优化

参考 Help the World by Healing Your NGINX Configuration 优化, 部分优化项:

  1. 字体和图像设置较长的缓存过期时间

修改具体域名的 nginx 配置, 如下配置指示客户端浏览器将字体和图像在本地缓存中保留一个月:

location ~* \.(?:jpg|jpeg|gif|png|ico|woff2)$ {
    expires 1M;
    add_header Cache-Control "public";
}

需要注意的是,字体有很多格式 (eot|ttf|otf|woff|svg), 所以可以修改为:

location ~* \.(?:jpg|jpeg|gif|png|ico|woff2|eot|ttf|otf|svg)$ {
    expires 1M;
    add_header Cache-Control "public";
}

2. 减少和优化日志记录

2.1 修改具体域名的 nginx 配置, 禁用页面资源请求的记录:

location ~* \.(?:jpg|jpeg|gif|png|ico|woff2|js|css)$ {access_log off;}

修改版, 增加了资源类型:

location ~* \.(?:jpg|jpeg|gif|png|ico|woff2|eot|ttf|otf|svg|js|css)$ {access_log off;}

2.2 不记录请求成功的日志, 这里用默认 combined 格式记录日志, 编辑 /etc/nginx/nginx.conf

#access_log /var/log/nginx/access.log;
map $status $loggable {~^[23] 0;
    default 1;
}

access_log /var/log/nginx/access.log combined buffer=512k flush=1m if=$loggable;

无法上传文件,提示 您点击的链接已过期。

  1. sudo vi /etc/php/7.4/fpm/php.ini
post_max_size = 100M
upload_max_filesize = 100M

重启 php:sudo service php7.4-fpm restart

2. 修改 nginx 配置文件

 # pass PHP scripts to FastCGI server
        location ~ .*\.php(\/.*)*$ {
               include snippets/fastcgi-php.conf;
               fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
               client_max_body_size 100M;
        }
评论(没有评论)