NGINX
NGINX Trac
3rd Party Modules
Security Advisories
CHANGES
OpenResty
ngx_lua
Tengine
在线学习资源
NGINX 开发从入门到精通
NGINX Modules
ngx_echo
tanteng
V2EX  ›  NGINX

对 Nginx 的配置的困惑

  •  
  •   tanteng ·
    tanteng · Apr 11, 2016 · 3652 views
    This topic created in 3712 days ago, the information mentioned may be changed or developed.

    测试服务器上 Nginx 配置是:

    rewrite ^/bootstrap/(.*) /bootstrap/$1 break;
    rewrite ^(.*)$ /index.php?/$1 last;
    

    访问 www.example.com/bootstrap/demo.css 是可以的,并且 demo 文件位于 /misc.vip/bootstrap/demo.css

    但是本地 nginx 必须这样配置才能达到效果:

    rewrite ^/bootstrap/(.*) /misc.vip/bootstrap/$1 break;
    

    这是为什么??测试服务器并么有看到对 misc.vip 目录做了什么??

    另外, rewrite 的方式是否现在已经不建议了,使用 try_files 应该怎么写?

    不吝赐教!!

    Supplement 1  ·  Apr 12, 2016
    http://dd.com/static/touchtemplate/4/

    现在的问题是这个无法访问,目录下有个 index.html ,访问提示 404

    static 路径有做 rewrite 到真实目录
    Supplement 2  ·  Apr 12, 2016

    配置弄好了,这样就OK

    server {
        listen       80;
        server_name  admin.vip.xunlei.com;
        root   /usr/share/nginx/html/xl/admin.vip_center;
        index  index.php index.html index.htm;
    
    
        location / {
            #try_files $uri $uri/ /index.php?$args;
            rewrite ^(.*)$ /index.php?/$1 last;
        }
    
        location /static/ {
            root /usr/share/nginx/html/xl/admin.vip_center/misc.vip;
            index index.html
            try_files $uri /static/login.html;
        }
    
        location ~* \.(js|jpg|png|css|gif)$ {
            root /usr/share/nginx/html/xl/admin.vip_center/misc.vip;
            rewrite ^/css/(.*) /css/$1 break;
            rewrite ^/js/(.*) /js/$1 break;
            rewrite ^/images/(.*) /images/$1 break;
            rewrite ^/bootstrap/(.*) /bootstrap/$1 break;
        }
    ……
    
    

    测试服务器的nginx和本地虚拟机的nginx版本不同,测试服务器版本很老,所以直接把测试服务器nginx规则弄过来是不行的,要这样改一下。还是有的地方不明白,需要深入学习nginx的配置。

    Supplement 3  ·  Apr 12, 2016
    附上测试服务器的 nginx 配置

    ```
    # 会员后台
    server {
    listen 80;
    server_name xxx.xxx.com;
    root /data/vhosts/admin.vip_center;
    index index.html index.php;

    rewrite ^/script/(.*) /script/$1 break;
    rewrite ^/auto/(.*) /auto/$1 break;
    rewrite ^/images/(.*) /images/$1 break;
    rewrite ^/css/(.*) /css/$1 break;
    rewrite ^/js/(.*) /js/$1 break;
    rewrite ^/static/(.*) /static/$1 break;
    rewrite ^/bootstrap/(.*) /bootstrap/$1 break;
    rewrite ^(.*)$ /index.php?/$1 last;

    location ~ \.php$ {
    fastcgi_pass backend;
    fastcgi_index index.php;
    fastcgi_connect_timeout 300;
    fastcgi_send_timeout 300;
    fastcgi_read_timeout 300;
    fastcgi_param SCRIPT_FILENAME /data/vhosts/admin.vip_center/$fastcgi_script_name;
    include fastcgi_params;
    }
    }
    ```
    3 replies    2016-04-15 15:09:15 +08:00
    luckybird
        1
    luckybird  
       Apr 12, 2016
    静态文件不是经常单独用一个 location 匹配的吗?
    我习惯这样配置
    location ~* \.(gif|jpg|png|js|css)$ {
    root /usr/share/nginx/html/static;
    }
    z5864703
        2
    z5864703  
       Apr 12, 2016
    root 目录设置问题
    Jakesoft
        3
    Jakesoft  
       Apr 15, 2016
    我也遇到了相同的问题,但是我的只有路径后面不加 /才会有 301 跳转
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2811 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 257ms · UTC 15:27 · PVG 23:27 · LAX 08:27 · JFK 11:27
    ♥ Do have faith in what you're doing.