Nginx + Laravel5-Entwicklungs-Cache-Problem.
曾经蜡笔没有小新
曾经蜡笔没有小新 2017-05-16 16:55:51
0
6
538

Hallo zusammen, ich bin hier, um eine weitere Frage zu stellen.
Mein Problem ist das Seiten-Caching.
Die Situation ist wie folgt:

  1. Meine Umgebung ist das Ein-Klick-Bereitstellungspaket Linux Mint+LNMP1.2
  2. Jedes Mal, wenn ich eine Datei lokal ändere, dauert es immer 1 Minute, um die Seite zu aktualisieren, bevor sie wirksam wird.
  3. Oder vielleicht wird es jedes Mal, wenn ich sudo lnmp restart im Terminal eingebe, nach der Aktualisierung wirksam (ist das nicht dumm, ich habe neu gestartet ...)

Dann kommt die Frage,
Wie kann ich dieses Cache-Problem beheben? ?
Jedes Mal ist die lokale Entwicklung problematisch,
Poste meine vhost.conf

server
    {
        listen 80;
        #listen [::]:80;
        server_name x.x ;
        index index.html index.htm index.php default.html default.htm default.php;
        root  /home/millyn/www/x.x/public;

        include other.conf;
        #error_page   404   /404.html;
        location /
        {
        try_files $uri $uri/ /index.php?$query_string;
        }
        location ~ [^/]\.php(/|$)
        {
            # comment try_files $uri =404; to enable pathinfo
            #try_files $uri =404;
            fastcgi_pass  unix:/tmp/php-cgi.sock;
            fastcgi_index index.php;
            include fastcgi.conf;
            #include pathinfo.conf;
            add_header Cache-Control 'no-store';
        }

       # location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
       # {
       #     expires      30d;
       # }

       # location ~ .*\.(js|css)?$
       # {
       #     expires      12h;
       # }

        access_log  /home/wwwlogs/x.x.log  access;
    }

Das Folgende ist von mirnginx.conf

user  www www;

worker_processes auto;

error_log  /home/wwwlogs/nginx_error.log  info;

pid        /usr/local/nginx/logs/nginx.pid;

#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 51200;

events
    {
        use epoll;
        worker_connections 51200;
        multi_accept on;
    }

http
    {
        include       mime.types;
        default_type  application/octet-stream;

        server_names_hash_bucket_size 128;
        client_header_buffer_size 32k;
        large_client_header_buffers 4 32k;
        client_max_body_size 50m;

        sendfile   on;
        tcp_nopush on;

        keepalive_timeout 60;

        tcp_nodelay on;

        fastcgi_connect_timeout 300;
        fastcgi_send_timeout 300;
        fastcgi_read_timeout 300;
        fastcgi_buffer_size 64k;
        fastcgi_buffers 4 64k;
        fastcgi_busy_buffers_size 128k;
        fastcgi_temp_file_write_size 256k;

        gzip on;
        gzip_min_length  1k;
        gzip_buffers     4 16k;
        gzip_http_version 1.1;
        gzip_comp_level 2;
        gzip_types     text/plain application/javascript application/x-javascript text/javascript text/css application/xml application/xml+rss;
        gzip_vary on;
        gzip_proxied   expired no-cache no-store private auth;
        gzip_disable   "MSIE [1-6]\.";

        #limit_conn_zone $binary_remote_addr zone=perip:10m;
        ##If enable limit_conn_zone,add "limit_conn perip 10;" to server section.

        server_tokens off;
        #log format
        log_format  access  '$remote_addr - $remote_user [$time_local] "$request" '
             '$status $body_bytes_sent "$http_referer" '
             '"$http_user_agent" $http_x_forwarded_for';
        access_log off;

server
    {
        listen 80 default_server;
        #listen [::]:80 default_server ipv6only=on;
        server_name www.lnmp.org;
        index index.html index.htm index.php;
        root  /home/wwwroot/default;

        #error_page   404   /404.html;
        include enable-php.conf;

        location /nginx_status
        {
            stub_status on;
            access_log   off;
        }

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
            expires      30d;
        }

        location ~ .*\.(js|css)?$
        {
            expires      12h;
        }

        location ~ /\.
        {
            deny all;
        }

        access_log  /home/wwwlogs/access.log  access;
    }
include vhost/*.conf;
}

Vielen Dank für die Beantwortung meiner Fragen. . Danke...

曾经蜡笔没有小新
曾经蜡笔没有小新

Antworte allen(6)
刘奇

看情况应该是PHP的ZendOpcache缓存,可以修改php.ini配置:

opcache.revalidate_freq=60 官方建议设为60秒.
表示60秒后脚本再次被访问时会检测PHP文件的时间戳,有改变则更新opcode缓存.
可以设为0,这样每次访问都会检测文件时间戳,修改就能在访问时生效了.

或者关闭ZendOpcache:
opcache.enable=0

或者把项目所在目录加入黑名单不缓存:
opcache.blacklist_filename=/png/www/example.com/blacklist
blacklist内容,比如:
/png/www/example.com/public_html/

我想大声告诉你

修改了什么文件呢?模板文件会自动更新缓存,静态资源文件可能是浏览器缓存,强制刷新试试。

过去多啦不再A梦
shellvim /usr/local/php/etc/php.ini

下面全部注释掉
;opcache
[Zend Opcache]
;zend_extension=opcache.so
;opcache.memory_consumption=128
;opcache.interned_strings_buffer=8
;opcache.max_accelerated_files=4000
;opcache.revalidate_freq=60
;opcache.fast_shutdown=1
;opcache.enable_cli=1
;opcache end

;xcache
;xcache end
漂亮男人

修改的前端还是后端。
如果是前端文件,可以检查下浏览器的设置,是否Disable Cache了

伊谢尔伦

二楼的正解,一般开发环境也不需要开启opcache

迷茫

开发环境建议关闭Opcache。生产环境比较适用。

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage