Language Selection

English French German Italian Portuguese Spanish

New Content/Layout OK?

Varnish Proxy

Silly me, a poll would not work on the new server. I forgot that with the Varnish cache proxy at the front almost all visitors arrive from the same IP address (the proxy), which means that Drupal would allocate just one vote to all (except registered and presently logged in users). With Drupal upgrade we can perhaps find polling software that overcomes this.

rpaf

You must use mod_rpaf to fix this problem that Varnish introduces.
See eg https://www.varnish-cache.org/lists/pipermail/varnish-misc/2008-September/016470.html
mod_rpaf for EL6 64bit here: http://centos.alt.ru/repository/centos/6/x86_64/mod_rpaf-0.6-2.el6.x86_64.rpm

Proxy

Thank, we will look into it. Currently, a lot of stuff other than the poll (e.g. views being counted) are not compatible with Varnish and it makes it look as though not many people visit and can participate in the site.

For sheer stats you could use

For sheer stats you could use an external (i.e. not cached by varnish) service, such as Google Analytics or run your own Piwik.

Piwik

Google Analytics is spyware, but Piwik would be a possibility (Stallman recently told me that it's good). Can it be installed on a cache proxy? I'd have to gain access to it first. Either way, this would not facilitate per-post page request count. Susan had it set up with a module, but it's no longer working correctly. In turn, rating/sorting posts by popularity is no longer possible, and that's the real downside (the front page can no longer list popular items for today).

The problem is not just that IP addresses are not unique. Some requests are never seen by the CMS and Apache.

For the non-unique addresses

For the non-unique addresses look at mod_rpaf, it was made for this situations.
Is this drupal6 or 7? With 6 varnish integration sucks from what I've seen.

See also
https://drupal.org/project/varnish
https://fourkitchens.atlassian.net/wiki/display/TECH/Configure+Varnish+3+for+Drupal+7

Agreed on Google Analytics. You can just install Piwik on the same host and tell Varnish either not to cache it or you can just set its virtualhost on a port other than 80 so it bypasses Varnish completely.

Varnish

Thanks for the pointers.

Yes, it's Drupal 6 and there are other issues that I am beginning to see, such as lack of updates from the RSS feeds around the page (I am currently investigating this, maybe it's related to a cron job or module config although I very much doubt the latter as I haven't changed configs).

Non-unique addresses could be bypassed as an issue even by writing random IP addresses, but that would enable easy poll rigging. I guess it's not essential for operation of the site, but it's a nice-to-have...

From Drupal.org: "This module provides integration between your Drupal site and the Varnish HTTP Accelerator, an advanced and very fast reverse-proxy system. Basically, Varnish handles serving static files and anonymous page-views for your site much faster and at higher volumes than Apache, in the neighborhood of 3000 requests per second."

I have had such issues with Varnish on top of WordPress and MediaWiki (pages served improperly from cache) and it all makes me wonder if removing Varnish altogether is the best way to proceed.

As for Piwik, I have never tried it before, so I will look into it.

I would keep Varnish on for

I would keep Varnish on for static files (css, js, jpeg etc) and to clean up HTTP traffic (Varnish will not forward incomplete or malformed HTTP requests to the backend, it should also be the front line against synfloods etc).

Here's a sample of what I use (test it first, I'm just beginning with Varnish myself)

director default dns {
.list = {
.port = "8080";
.connect_timeout = 5s;
.first_byte_timeout = 600s;
.between_bytes_timeout = 600s;
.max_connections = 10000;
"172.16.1.53"/32;
}
}
sub vcl_recv {
if (req.url ~ "\.(png|gif|jpg|swf|css|js)$") {
return(lookup);
}
}
sub vcl_fetch {
if (req.url ~ "\.(png|gif|jpg|swf|css|js)$") {
unset beresp.http.set-cookie;
}
if (req.restarts == 0) {
if (req.http.x-forwarded-for) {
set req.http.X-Forwarded-For =
req.http.X-Forwarded-For + ", " + client.ip;
} else {
set req.http.X-Forwarded-For = client.ip;
}
}
}

Then install mod_rpaf and make sure your Apache is listening on port 8080 and add this to /etc/httpd/conf.d/rpaf.conf:
LoadModule rpaf_module modules/mod_rpaf-2.0.so

RPAFenable On
RPAFproxy_ips 127.0.0.1 IPs_OF_THE_SERVER
RPAFsethostname On
RPAFheader X-Forwarded-For

PS: looks like drupal is messing with my comments, here's a text version http://fpaste.org/74672/raw/

Thanks

Thanks, I will look at it and into it in the weekend.

RSS feeds

The Piwik demo looks impressive, I have just given them a word of endorsement.

I am still trying to resolve some other issues we've identified.

I think I found the source of the issue above (RSS feeds). It seems like any external site access is denied by default, which helps explain why RSS feeds cannot be retrieved by the Drupal part of the site:


[root@tuxmachines ~]# wget lxer.com
--2014-02-05 04:34:37--  http://lxer.com/
Resolving lxer.com... 108.166.170.174
Connecting to lxer.com|108.166.170.174|:80... failed: Connection refused.
[root@tuxmachines ~]# wget linuxtoday.com
--2014-02-05 04:34:54--  http://linuxtoday.com/
Resolving linuxtoday.com... 70.42.23.121
Connecting to linuxtoday.com|70.42.23.121|:80... failed: Connection refused.

Looks like a firewall issue

Looks like a firewall issue at the first glance.

Firewall

Nux wrote:

Looks like a firewall issue at the first glance.

Yes, it was a simply issue to tackle. It works now.

Pageview count and polls

I'll have a look and see if configuration can solve not just the polling issue but also pageview count. The site of this module is down and it seems like it may require configuration on the cache server too.

More in Tux Machines

today's leftovers

  • Ubuntu Podcast from the UK LoCo: S12E33 – The Sentinel

    This week we’ve been to the Linux Application Summit in Barcelona. We round up news from the Ubuntu and desktop Linux community and bring you our picks from the wider tech news. It’s Season 12 Episode 33 of the Ubuntu Podcast! Alan Pope, Mark Johnson and Martin Wimpress are connected and speaking to your brain.

  • Kubernetes and the misconception of multi-cloud portability
  • Linux 5.5 To Finally Expose NVMe Drive Temperatures Via HWMON

    Linux for years has supported monitoring NVMe drive temperatures when installing the nvme user-space utility and run as root, etc. But now finally with Linux 5.5 the kernel is supporting NVMe drive temperature reporting through the hardware monitoring "HWMON" infrastructure alongside other hardware sensors. Come the Linux 5.5 stable release in early 2020 is the NVMe HWMON support to allow reporting the current NVMe drive temperature sensor(s) and min/max thresholds via this kernel infrastructure. This in turn allows user-space to simply query the data over sysfs without the need for any utilities, no root requirement, and should gracefully work with the various programs that report HWMON sensor readings to Linux desktop users.

  • PHP 5.3 To PHP 7.4 Performance Benchmarks On AMD EPYC

    With the big PHP 7.4.0 release due out next week, yesterday we published our PHP 7.4.0 benchmarks using the near-final build for this annual update to PHP. Those benchmarks compared previous releases as far back as PHP 5.6. But out of curiosity after that article I went to do some benchmarks going back to PHP 5.3 through PHP 7.4 and PHP 8.0-dev. With the AMD EPYC 7642 server running Ubuntu 19.10 used in yesterday's article, I ran the final PHP 5.3/5.4/5.5 benchmarks added in to yesterday's data. So for those curious how the historical PHP5 performance compares to the imminent PHP 7.4, these benchmarks are for your enjoyment today.

  • Wine Patches Coming To Allow UMIP Emulation - Works Around Issues For Ryzen 3000

    Coming up this weekend with the Linux 5.4 kernel is emulation/spoofing of the SGDT/SIDT/SMSW instructions around UMIP for allowing newer 64-bit Windows games to run on Wine and Steam Play (Proton). With newer CPUs like the AMD Ryzen 3000 series that support UMIP, these instructions are not allowed to run in user-space with Wine due to UMIP. So while the first stable kernel release is about to land with this support, some Wine-based emulation not contingent on the kernel patches is also in the works.

  • The different way to check whether you are using a 32-bit or 64-bit version of Linux on your computer
  • KF6 Sprint - Day One

    Today we started our KF6 sprint at the MBition office in Berlin. Beside the people attending in person, we have David Faure joining us via web conference. Thanks already to the people at MBition that spend time on making it possible to host the sprint there. First stuff to be discussed were some high level things, like does the monthly release scheme work out well. Short answer: yes :) The short period works well, allows people to fix issues directly in frameworks and still have that reasonable fast provided to the users. And the overhead of release creation is low, thanks to automation.

  • Zidoo M9 is a Rockchip RK3399 TV Box/Mini PC/SBC with Dual OS Support

    Zidoo has launched several TV boxes running Android over the years, some of which we reviewed such as Zidoo X9 (2015), or Zidoo H6 Pro.

  • Goldman Sachs is planning on giving some of its most valuable software to Wall Street for free

    Goldman Sachs wants to give away some of its most valuable software. The investment bank spent countless hours over 14 years developing a platform called Alloy to help it access and analyze the growing set of financial databases being created across the firm. Now Goldman is taking the unusual step of making that program, as well as the language underlying it, available to the rest of Wall Street for free as open-source software in collaboration with a nonprofit called Finos. The software and language "have grown to become critical tools within our firm across the trade lifecycle that help us price, assess and evaluate risk, clear transactions, and perform regulatory reporting," said Neema Raphael, co-chief data officer at Goldman. By making it publicly available, "we'll unlock tremendous value for the industry when we co-develop and share models."

  • Open source transparency comes to root of trust hardware

    Geopolitics have put enterprise data centers in the crosshairs of international espionage. From all corners of the globe, hackers of all sorts, including those aligned with national spy agencies, are zeroing in on hardware roots of trust. For any computing platform, the root of trust is the ultimate line of defense against cybersecurity attacks. No matter how secure your operating system and applications appear to be, they are acutely vulnerable if running on a hardware platform whose root of trust has been compromised by an unauthorized party.

  • Cloud Print becomes the latest product to face Google death squad

    At the end of 2020, after over a decade in beta, Google will pick up its product-ending shotgun and take Cloud Print for a talk behind the back shed, from which it will never return. "Beginning January 1, 2021, devices across all operating systems will no longer be able to print using Google Cloud Print," Google said in a support note. "We recommend that over the next year, you identify an alternative solution and execute a migration strategy." Last week for its own Chrome OS operating system, Google added CUPS printing, which it will use instead of Cloud Print.

  • Google shuts down its Cloud Print service after 10-year Beta

    Google revealed plans to shut down Cloud Print, a cloud-based printing solution, at the end of 2020 permanently. The company launched Cloud Print back in 2010 as a solution to print from any Internet connected device to compatible printers. The main benefit of the solution was that users did not have to install printer drivers on their client devices and that devices did not need to be in the same local network as the printer. The solution enabled printing on devices without official support from the printer's manufacturer or drivers for that particular device. On Windows users could install the Google Cloud Printer application to add cloud printing functionality to the operating system.

  • Google Cloud Print will be shut down on December 31, 2020

    After offering printing from any device, from any location, to any web-connected printer with Cloud Print, Google is shutting down the service that has technically been a beta product since 2010. Cloud Print will be gone by the end of next year and users will need to find an alternative before December 31, 2020. Chrome OS, which originally relied on Cloud Print entirely for printing needs, eschewing the need to develop native printing controls, is now going full native. Chrome OS already handles some administrative tasks for printers that use the Common Unix Printing System (CUPS). Google promises to expand administrative options through the end of the year, and add more robust support for external print servers and other security policy administration in 2020. Since Chrome OS and its apps relied entirely on Cloud Print, Google will also be developing APIs for third-party developers to handle printing tasks.

Why You Should Be Using Linux

How many times have you been happily working away when, out of nowhere, Windows either forced a reboot to update, stopped responding, or completely crashed? With Linux, those events are a thing of the past. Because of the way Linux was designed, you (the user) have complete control over nearly everything. Say, for example, an application fails on you. Instead of that application taking the entire desktop along for the ride (an issue that often stumps even software development providers), you can log into what’s called a virtual console and force that crashed application closed via the command line. Yes, that does take a bit more skill than the average user possesses, but once you know how it’s done, it becomes second nature. The likelihood of that actually happening, however, is low. The few instances where this has happened to me was due to my using beta or “nightly” releases of software, which the average user wouldn’t be working with. Linux simply works and works with an almost unheard of reliability. Read more

Industrial-grade Linux OS gets Over-the-Air updates

Modern embedded systems need a reliable and secure way to deliver software updates remotely. Toradex aims to accomplish this by publishing critical operating system updates to customers with devices running TorizonCore, an easy-to-use industrial-grade Linux OS. The system will provide full control over which updates and when these updates are pushed to their devices by way of a web interface. Additionally, customers will be able to push their own updates to their devices using the same OTA system. Managing deployed devices is made easy by providing a high-level view of all devices and their current status. Grouping devices together into fleets is supported and makes managing updates for many devices easy. Every device publishes information up to the server which can prove useful for evaluating device health, inconsistencies in deployed devices, etc. Read more

SUSE/OpenSUSE Development Report

  • openSUSE Tumbleweed – Review of the week 2019/47

    Another week, in which openQA did block some of the snapshots – and some issues it was unfortunately not able to see. Anyway, during the week 2019/47 we have released three snapshot into the wild (1116, 1118 and 1119), containing those changes: Mesa 19.2.4: fixes critical rendering issues from earlier Mesa 19.2.3. As this rendering issue did not happen on all graphics adapters, openQA had no chance of spotting it Linux kernel 5.3.11 KDE Plasma 5.17.3 Subversion 1.13.0 binutils 2.33.1

  • YaST Team: Highlights of YaST Development Sprints 88 and 89

    A few weeks ago, we wrote about the new ItemSelector widget that is finding its way into YaST user interfaces. It turned out that just a simple on/off status is not enough in some cases, so we had to extend that concept. For example, software modules may have dependencies, and we want to show the difference between one that was explicitly selected by the user and one that was auto-selected because some other software module requires it. This kind of shook the foundations of the underlying classes; all of a sudden a bit is no longer just a bit, but it needs to be broken down into even smaller pieces. Well, we cheated; we now use integer values instead. Most of the class hierarchy still only uses 0 and 1, but the new YCustomStatusItemSelector also supports using higher numbers for application-defined purposes. For each possible status value, the application defines the name of the icon to be displayed (for graphical UIs like the Qt UI), the text equivalent (for text mode / the NCurses UI), and an optional nextStatus which tells the widget what status to cycle to when the user changes the status of an item with a mouse click or with the keyboard. A value of -1 lets the application handle this. So this is not a one-trick-pony that is useful only for that one use case (the software modules), but a generic tool that might find good uses in other places all over YaST as well.