Nginx + Laravel5 development cache problem.
曾经蜡笔没有小新
曾经蜡笔没有小新 2017-05-16 16:55:51
0
6
566

Hello everyone, I am here to ask another question.
My problem is page caching.
details as following:

  1. My environment is Linux Mint+LNMP1.2 one-click deployment package
  2. Every time I modify a file locally, it always takes 1 minute to refresh the page before it takes effect.
  3. Or maybe every time I enter sudo lnmp restart in the terminal, it will take effect after refreshing (isn’t this stupid, I have restarted...)

Then here comes the question,
How can I close this cache problem? ?
Every time local development is troublesome,
Post my 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;
    }

The following is my nginx.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;
}

Thank you for answering my questions. . Thanks...

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

reply all(6)
刘奇

Depending on the situation, it should be PHP’s ZendOpcache cache. You can modify the php.ini configuration:

opcache.revalidate_freq=60 The official recommendation is to set it to 60 seconds.
It means that when the script is accessed again after 60 seconds, the timestamp of the PHP file will be detected, and if there is any change, the opcode cache will be updated.
It can be set to 0, so that the file timestamp will be detected every time it is accessed, and the modification will take effect when accessed.

Or turn off ZendOpcache:
opcache.enable=0

Or add the directory where the project is located to the blacklist to avoid caching:
opcache.blacklist_filename=/png/www/example.com/blacklist
blacklist content, such as:
/png/www/example.com/public_html/

我想大声告诉你

What files were modified? The template file will automatically update the cache. The static resource file may be in the browser cache. Try forcing a refresh.

过去多啦不再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
漂亮男人

The modified front-end or back-end.
If it is a front-end file, you can check the browser settings to see if Cache is Disable

伊谢尔伦

Correct answer on the second floor, general development environment does not need to enable opcache

迷茫

The development environment is recommended to be closedOpcache. It is more suitable for production environment.

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template