整理的一些常用到的 Nginx 配置

surest發表於2021-12-03

偽靜態配置

Laravel

location / {
    try_files $uri $uri/ /index.php$is_args$query_string;
}

ThinkPhp

location / {
    if (!-e $request_filename){
        rewrite  ^(.*)$  /index.php?s=$1  last;   break;
    }
}

Vue History

location / {
  try_files $uri $uri/ /index.html;
}

設定代理【簡單版】

location /document
{
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_set_header Host $http_host;
    proxy_set_header  X-Forwarded-Proto $scheme;
    #此處配置 程式的地址和埠號
    proxy_pass http://127.0.0.1:8181/;
}

設定 Nginx 訪問日誌

啟動 nginx 時 會自動建立檔案

access_log  /www/wwwlogs/host.com.log;
error_log  /www/wwwlogs/host-error.com.log;

設定 當前域名對映目錄

root /www/wwwroot/host.com;

監聽多埠

server
{
    listen 80;
    listen 8081;
    ...
}

設定域名地址

server_name host.com;

根據正則條件

被匹配域名 : host.com/TR1699043296-web.png

location ~ ^.*(TR.*)\.png$
{
    proxy_pass        http://127.0.0.1:9501;
    proxy_set_header  Host            $host;
    proxy_set_header  X-Real-IP        $remote_addr;
    proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
}

根據字尾條件

location ~ .*\.(js|css)?$
{
    # 過期時間
    expires      12h;

    # 開啟日誌
    error_log off;

    # /dev/null 忽略
    access_log /dev/null;
}

檔案不存在的時候指向另外一個站點

始發站點

location ~ ^.*(TR.*)\.(png|pdf)$
{
  proxy_set_header  Host            $host;
  proxy_set_header  X-Real-IP        $remote_addr;
  proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
  if (!-e $request_filename) {
        proxy_pass http://127.0.0.1:9501;
  }
}

目標站點

location ~ ^.*(TR.*)\.(png|pdf)$
{
    root /www/wwwroot/project;
}

PDF 瀏覽器載入

if ($request_filename ~* ^.*(TR.*)\.pdf$){
    add_header Content-Disposition attachment;
}
本作品採用《CC 協議》,轉載必須註明作者和本文連結
每天3小時...加油

相關文章