react-router 簡單的nginx配置


 配置實例:

http {

        ##
        # Basic Settings
        ##

        sendfile on;
        tcp_nopush on;
        tcp_nodelay on;
        keepalive_timeout 65;
        types_hash_max_size 2048;
        # server_tokens off;

        # server_names_hash_bucket_size 64;
        # server_name_in_redirect off;

        include /etc/nginx/mime.types;
        default_type application/octet-stream;

        ##
        # SSL Settings
        ##

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
        ssl_prefer_server_ciphers on;

        ##
        # Logging Settings
        ##

        access_log /var/log/nginx/access.log;
        error_log /var/log/nginx/error.log;

        ##
        # Gzip Settings
        ##

        gzip on;
        gzip_disable "msie6";

        # gzip_vary on;
        # gzip_proxied any;
        # gzip_comp_level 6;
        # gzip_buffers 16 8k;
        # gzip_http_version 1.1;
        # gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

        ##
        # Virtual Host Configs
        ##
        server {
                listen 8080;  # 端口
                server_name localhost;   # 綁定域名 
                location ~ .*?\.(js|css|jpg|png|jpeg|less|sass)   # 規則
                {
                        root /home/uftp/react;  # web目錄
                        expires 3d;  # 文件緩存時間
                        rewrite .*?([^\/\\\]*?\.(js|css|jpg|png|jpeg|less|sass)) /dist/$1 break; # rewrite:指令; .*?([^\/\\])*?\.(js|css|jpg|png|jpeg|less|sass):匹配文件的正則; /dist/$1:($1正則匹配分組1內容,即文件名)重定向的文件路徑
                }
                location / {
                        root /home/uftp/react;
                        try_files $uri /index.html;  # try_files:檢查文件; $uri:監測的文件路徑; /index.html:文件不存在重定向的新路徑 
                        index index.html index.htm index.php; 
                }
        }
        include /etc/nginx/conf.d/*.conf;
        include /etc/nginx/sites-enabled/*;
}

location規則

~      #波浪線表示執行一個正則匹配,區分大小寫
~*    #表示執行一個正則匹配,不區分大小寫
^~    #^~表示普通字符匹配,如果該選項匹配,只匹配該選項,不匹配別的選項,一般用來匹配目錄
=      #進行普通字符精確匹配
@     #"@" 定義一個命名的 location,使用在內部定向時,例如 error_page, try_files

首先匹配 =,其次匹配^~, 其次是按文件中順序的正則匹配,最后是交給 / 通用匹配。當有匹配成功時候,停止匹配,按當前匹配規則處理請求。

rewrite指令

語法:rewrite regex replacement [flag];
默認值:無
作用域:server,location,if
如果一個URI匹配指定的正則表達式regex,URI就按照replacement重寫。
rewrite按配置文件中出現的順序執行。flags標志可以停止繼續處理。
如果replacement以"http://"或"https://"開始,將不再繼續處理,這個重定向將返回給客戶端。
flag可以是如下參數
last 停止處理后續rewrite指令集,然后對當前重寫的新URI在rewrite指令集上重新查找。
break 停止處理后續rewrite指令集,並不在重新查找,但是當前location內剩余非rewrite語句和location外的的非rewrite語句可以執行。
redirect 如果replacement不是以http:// 或https://開始,返回302臨時重定向
permant 返回301永久重定向


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM