GithubHelp home page GithubHelp logo

vezaynk / nginx-pagespeed Goto Github PK

View Code? Open in Web Editor NEW
23.0 2.0 2.0 190.37 MB

Automated packaging of Debian-flavored NGINX with PageSpeed modules. Written in Bash and GitHub Workers. APT Repository hosted on Dokku.

Home Page: https://www.bbss.dev/posts/pagespeed/

HTML 12.94% Shell 87.06%
nginx pagespeed debian ubuntu

nginx-pagespeed's Introduction

NGINX + Google PageSpeed

Build Deploy to Dokku Health Check

Configuring NGINX to build correctly is a pain. Not because of anything wrong with it, but rather because of how slim the standard install is: no HTTPS, no Web-Sockets, no PAM, etc., since they are all independent modules. While this is sound in principle, it's inconvenient for end-users.

Luckily, most distributions fork it, make a few changes and bundle it with everyone's favorite modules. Installing NGINX from your distribution's repositories will always give you a batteries-included configuration. This convenience presents a dilemma: either accept what your distribution gives you and lose the flexibility of customizing your installation or bite the bullet and try to figure everything out yourself.

I could no longer accept the default installation once I decided to have Google PageSpeed on my servers. If you're on this repository, I don't think I need to explain the benefits. In short, Mod PageSpeed is a collection of filters that apply optimizations to content going through it such as compression, minification, conversion to modern formats, lazy-loading, and more.

There was painfully little documentation on the topic of forking a Debian package, but I managed to piece it together. This repository is the result: a seamless way to substitute Debian-flavored NGINX with Debian-flavored NGINX + PageSpeed. Enjoy!

Installation

This installation guide aims to support any modern Debian-based system (including Ubuntu). Open an issue if it doesn't work. The Debian packages are built on Ubuntu 20.04, and should be compatible with newer releases.

Download Keys

The GitHub worker signs the packages using the key below. You need to trust them to be able to install the packages.

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8028BE1819F3E4A0

Connect Source

Create /etc/apt/sources.list.d/nginx-pagespeed.list and put the following line into it:

deb https://nginx-pagespeed.knyz.org/dist/ /

This will enable apt to find the PageSpeed-patched versions of NGINX.

Pin Source

To prevent other sources from overwriting NGINX during updates, pin it by creating /etc/apt/preferences.d/99nginx-pagespeed and placing the following inside of it:

Package: *
Pin: origin nginx-pagespeed.knyz.org
Pin-Priority: 900

This will make apt unconditionally prefer PageSpeed-patched versions of NGINX.

Installing

  • Run sudo apt update, look out for any errors.
  • Run apt-cache policy nginx-full, validate that the selected candidate is from nginx-pagespeed.knyz.org.
  • Run sudo apt install nginx-full, or nginx-light depending on what you're looking for

Done!

Usage

There are more than enough guides around PageSpeed. My recommended setup is to place the following file into /etc/nginx/conf.d/pagespeed.conf:

pagespeed on;
pagespeed FileCachePath              "/var/cache/pagespeed/";
pagespeed FileCacheSizeKb            102400;
pagespeed FileCacheCleanIntervalMs   3600000;
pagespeed FileCacheInodeLimit        500000;
pagespeed RewriteLevel CoreFilters;

Remember to run sudo systemctl reload nginx after any changes.

Repository Status

This repository is largely autonomous, and self-reports important information.

Health Check Health Check

Health check is the most important flag. If it is failing, it means that a broken build may have been pushed into the repository. Inspect the CI to see if it's a real issue.

Currently, nginx-extras is failing. This is not new. Only the check is.

Deploy to Dokku Deploy to Dokku

The repository is hosted on my company's Dokku server. The Deploy to Dokku flag indicates whether the packages are successfully being pushed upstream. Failure likely indicates that the server is offline for some reason, but will be back soon! The package can be installed directly from this repository in the meantime.

Build Build

Is this green? If it is, that means that the current Debian upstream is building correctly. If it is red, then it means that updates are not being produced.

nginx-pagespeed's People

Contributors

vezaynk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

nginx-pagespeed's Issues

Implement a test CI step

The breakage introduced by #2 bothers me. My fix causes a divergence from salsa, and it makes me concerned that it will cause a binary incompatibility somewhere.

I want to setup a GitHub action that includes:

  • Adding the deb repository
  • Installing nginx
  • Testing a configuration that includes:
    • nginx-pagespeed rules
    • http-sub-filter rules
  • Checks if everything is valid using nginx -T

APT install breaking

The dependencies we need to building nginx seem to no longer be inter-compatible. Will need to trace what depends on what... what a headache.

Seems similar to:

Logs:

Run sudo apt install -y debhelper/focal-backports libdebhelper-perl/focal-backports libgd-dev libgeoip-dev libhiredis-dev libluajit-5.1-dev libmaxminddb-dev libmhash-dev libpam0g-dev libpcre3-dev libpcre2-dev libperl-dev libpcre++-dev libssl-dev libxslt1-dev po-debconf quilt zlib1g-dev dpkg-dev libexpat-dev wget git gpg

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

Reading package lists...
Building dependency tree...
Reading state information...
dpkg-dev is already the newest version (1.19.7ubuntu3.2).
dpkg-dev set to manually installed.
gpg is already the newest version (2.2.19-3ubuntu2.2).
gpg set to manually installed.
libexpat1-dev is already the newest version (2.2.9-1ubuntu0.4).
libexpat1-dev set to manually installed.
libpcre3-dev is already the newest version (2:8.39-12ubuntu0.1).
libpcre3-dev set to manually installed.
libssl-dev is already the newest version (1.1.1f-1ubuntu2.16).
wget is already the newest version (1.20.3-1ubuntu2).
zlib1g-dev is already the newest version (1:1.2.11.dfsg-2ubuntu1.3).
git is already the newest version (1:2.37.1-0ppa1~ubuntu20.04.1).
libpcre2-dev is already the newest version (10.40-1+ubuntu20.04.1+deb.sury.org+1).
libpcre2-dev set to manually installed.
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 libgd-dev : Depends: libgd3 (= 2.2.5-5.2ubuntu2.1) but 2.3.3-5+ubuntu20.04.1+deb.sury.org+1 is to be installed
E: Unable to correct problems, you have held broken packages.
Error: Process completed with exit code 100.

make: *** [Makefile:16: modules] Error 2 when compiling module only against patch aarch64 PSOL Libraries

I am running Ubuntu 20.04 Server, and attempting to compile this module against nginx mainline 1.23.1. Howver, there are errors when using the make command. Please see details below or check https://pastebin.com/qYksN26k.

This is the pagespeed "make" command being compiled against a patched PSOL Library for aarch64 on raspberry pi 4. We are compiling with Nginx Mainline 1.23.1. Locate the patched library at: https://gitlab.com/gusco/ngx_pagespeed_arm. This #make is broken and needs to be updated by developers.

make modules
make -f objs/Makefile modules
make[1]: Entering directory '/usr/local/src/nginx-1.23.1'
cc -c -fPIC -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -g -O2 -fdebug-prefix-map=/data/builder/debuild/nginx-1.23.1/debian/debuild-base/nginx-1.23.1=. -fstack-protector-strong -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fPIC  -D_GLIBCXX_USE_CXX11_ABI=0 --std=c++11 -I src/core -I src/event -I src/event/modules -I src/os/unix -I /usr/local/src/incubator-pagespeed-ngx/psol/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/chromium/src -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/google-sparsehash/src/src -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/google-sparsehash/gen/arch/linux/aarch64/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/grpc/src/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/protobuf/src/src -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/re2/src -I /usr/local/src/incubator-pagespeed-ngx/psol/include/out/Release/obj/gen -I /usr/local/src/incubator-pagespeed-ngx/psol/include/out/Release/obj/gen/protoc_out/instaweb -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/apr/src/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/aprutil/src/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/apr/gen/arch/linux/aarch64/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/aprutil/gen/arch/linux/aarch64/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/url -I objs -I src/http -I src/http/modules -I src/http/v2 -I src/mail -I src/stream \
    -o objs/addon/src/log_message_handler.o \
    /usr/local/src/incubator-pagespeed-ngx/src/log_message_handler.cc
cc -c -fPIC -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -g -O2 -fdebug-prefix-map=/data/builder/debuild/nginx-1.23.1/debian/debuild-base/nginx-1.23.1=. -fstack-protector-strong -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fPIC  -D_GLIBCXX_USE_CXX11_ABI=0 --std=c++11 -I src/core -I src/event -I src/event/modules -I src/os/unix -I /usr/local/src/incubator-pagespeed-ngx/psol/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/chromium/src -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/google-sparsehash/src/src -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/google-sparsehash/gen/arch/linux/aarch64/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/grpc/src/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/protobuf/src/src -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/re2/src -I /usr/local/src/incubator-pagespeed-ngx/psol/include/out/Release/obj/gen -I /usr/local/src/incubator-pagespeed-ngx/psol/include/out/Release/obj/gen/protoc_out/instaweb -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/apr/src/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/aprutil/src/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/apr/gen/arch/linux/aarch64/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/aprutil/gen/arch/linux/aarch64/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/url -I objs -I src/http -I src/http/modules -I src/http/v2 -I src/mail -I src/stream \
    -o objs/addon/src/ngx_base_fetch.o \
    /usr/local/src/incubator-pagespeed-ngx/src/ngx_base_fetch.cc
cc -c -fPIC -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -g -O2 -fdebug-prefix-map=/data/builder/debuild/nginx-1.23.1/debian/debuild-base/nginx-1.23.1=. -fstack-protector-strong -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fPIC  -D_GLIBCXX_USE_CXX11_ABI=0 --std=c++11 -I src/core -I src/event -I src/event/modules -I src/os/unix -I /usr/local/src/incubator-pagespeed-ngx/psol/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/chromium/src -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/google-sparsehash/src/src -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/google-sparsehash/gen/arch/linux/aarch64/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/grpc/src/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/protobuf/src/src -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/re2/src -I /usr/local/src/incubator-pagespeed-ngx/psol/include/out/Release/obj/gen -I /usr/local/src/incubator-pagespeed-ngx/psol/include/out/Release/obj/gen/protoc_out/instaweb -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/apr/src/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/aprutil/src/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/apr/gen/arch/linux/aarch64/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/aprutil/gen/arch/linux/aarch64/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/url -I objs -I src/http -I src/http/modules -I src/http/v2 -I src/mail -I src/stream \
    -o objs/addon/src/ngx_caching_headers.o \
    /usr/local/src/incubator-pagespeed-ngx/src/ngx_caching_headers.cc
cc -c -fPIC -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -g -O2 -fdebug-prefix-map=/data/builder/debuild/nginx-1.23.1/debian/debuild-base/nginx-1.23.1=. -fstack-protector-strong -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fPIC  -D_GLIBCXX_USE_CXX11_ABI=0 --std=c++11 -I src/core -I src/event -I src/event/modules -I src/os/unix -I /usr/local/src/incubator-pagespeed-ngx/psol/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/chromium/src -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/google-sparsehash/src/src -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/google-sparsehash/gen/arch/linux/aarch64/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/grpc/src/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/protobuf/src/src -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/re2/src -I /usr/local/src/incubator-pagespeed-ngx/psol/include/out/Release/obj/gen -I /usr/local/src/incubator-pagespeed-ngx/psol/include/out/Release/obj/gen/protoc_out/instaweb -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/apr/src/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/aprutil/src/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/apr/gen/arch/linux/aarch64/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/aprutil/gen/arch/linux/aarch64/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/url -I objs -I src/http -I src/http/modules -I src/http/v2 -I src/mail -I src/stream \
    -o objs/addon/src/ngx_event_connection.o \
    /usr/local/src/incubator-pagespeed-ngx/src/ngx_event_connection.cc
cc -c -fPIC -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -g -O2 -fdebug-prefix-map=/data/builder/debuild/nginx-1.23.1/debian/debuild-base/nginx-1.23.1=. -fstack-protector-strong -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fPIC  -D_GLIBCXX_USE_CXX11_ABI=0 --std=c++11 -I src/core -I src/event -I src/event/modules -I src/os/unix -I /usr/local/src/incubator-pagespeed-ngx/psol/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/chromium/src -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/google-sparsehash/src/src -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/google-sparsehash/gen/arch/linux/aarch64/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/grpc/src/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/protobuf/src/src -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/re2/src -I /usr/local/src/incubator-pagespeed-ngx/psol/include/out/Release/obj/gen -I /usr/local/src/incubator-pagespeed-ngx/psol/include/out/Release/obj/gen/protoc_out/instaweb -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/apr/src/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/aprutil/src/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/apr/gen/arch/linux/aarch64/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/aprutil/gen/arch/linux/aarch64/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/url -I objs -I src/http -I src/http/modules -I src/http/v2 -I src/mail -I src/stream \
    -o objs/addon/src/ngx_fetch.o \
    /usr/local/src/incubator-pagespeed-ngx/src/ngx_fetch.cc
cc -c -fPIC -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -g -O2 -fdebug-prefix-map=/data/builder/debuild/nginx-1.23.1/debian/debuild-base/nginx-1.23.1=. -fstack-protector-strong -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fPIC  -D_GLIBCXX_USE_CXX11_ABI=0 --std=c++11 -I src/core -I src/event -I src/event/modules -I src/os/unix -I /usr/local/src/incubator-pagespeed-ngx/psol/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/chromium/src -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/google-sparsehash/src/src -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/google-sparsehash/gen/arch/linux/aarch64/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/grpc/src/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/protobuf/src/src -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/re2/src -I /usr/local/src/incubator-pagespeed-ngx/psol/include/out/Release/obj/gen -I /usr/local/src/incubator-pagespeed-ngx/psol/include/out/Release/obj/gen/protoc_out/instaweb -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/apr/src/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/aprutil/src/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/apr/gen/arch/linux/aarch64/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/aprutil/gen/arch/linux/aarch64/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/url -I objs -I src/http -I src/http/modules -I src/http/v2 -I src/mail -I src/stream \
    -o objs/addon/src/ngx_gzip_setter.o \
    /usr/local/src/incubator-pagespeed-ngx/src/ngx_gzip_setter.cc
cc -c -fPIC -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -g -O2 -fdebug-prefix-map=/data/builder/debuild/nginx-1.23.1/debian/debuild-base/nginx-1.23.1=. -fstack-protector-strong -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fPIC  -D_GLIBCXX_USE_CXX11_ABI=0 --std=c++11 -I src/core -I src/event -I src/event/modules -I src/os/unix -I /usr/local/src/incubator-pagespeed-ngx/psol/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/chromium/src -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/google-sparsehash/src/src -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/google-sparsehash/gen/arch/linux/aarch64/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/grpc/src/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/protobuf/src/src -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/re2/src -I /usr/local/src/incubator-pagespeed-ngx/psol/include/out/Release/obj/gen -I /usr/local/src/incubator-pagespeed-ngx/psol/include/out/Release/obj/gen/protoc_out/instaweb -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/apr/src/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/aprutil/src/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/apr/gen/arch/linux/aarch64/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/aprutil/gen/arch/linux/aarch64/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/url -I objs -I src/http -I src/http/modules -I src/http/v2 -I src/mail -I src/stream \
    -o objs/addon/src/ngx_list_iterator.o \
    /usr/local/src/incubator-pagespeed-ngx/src/ngx_list_iterator.cc
cc -c -fPIC -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -g -O2 -fdebug-prefix-map=/data/builder/debuild/nginx-1.23.1/debian/debuild-base/nginx-1.23.1=. -fstack-protector-strong -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fPIC  -D_GLIBCXX_USE_CXX11_ABI=0 --std=c++11 -I src/core -I src/event -I src/event/modules -I src/os/unix -I /usr/local/src/incubator-pagespeed-ngx/psol/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/chromium/src -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/google-sparsehash/src/src -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/google-sparsehash/gen/arch/linux/aarch64/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/grpc/src/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/protobuf/src/src -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/re2/src -I /usr/local/src/incubator-pagespeed-ngx/psol/include/out/Release/obj/gen -I /usr/local/src/incubator-pagespeed-ngx/psol/include/out/Release/obj/gen/protoc_out/instaweb -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/apr/src/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/aprutil/src/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/apr/gen/arch/linux/aarch64/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/aprutil/gen/arch/linux/aarch64/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/url -I objs -I src/http -I src/http/modules -I src/http/v2 -I src/mail -I src/stream \
    -o objs/addon/src/ngx_message_handler.o \
    /usr/local/src/incubator-pagespeed-ngx/src/ngx_message_handler.cc
cc -c -fPIC -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -g -O2 -fdebug-prefix-map=/data/builder/debuild/nginx-1.23.1/debian/debuild-base/nginx-1.23.1=. -fstack-protector-strong -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fPIC  -D_GLIBCXX_USE_CXX11_ABI=0 --std=c++11 -I src/core -I src/event -I src/event/modules -I src/os/unix -I /usr/local/src/incubator-pagespeed-ngx/psol/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/chromium/src -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/google-sparsehash/src/src -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/google-sparsehash/gen/arch/linux/aarch64/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/grpc/src/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/protobuf/src/src -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/re2/src -I /usr/local/src/incubator-pagespeed-ngx/psol/include/out/Release/obj/gen -I /usr/local/src/incubator-pagespeed-ngx/psol/include/out/Release/obj/gen/protoc_out/instaweb -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/apr/src/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/aprutil/src/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/apr/gen/arch/linux/aarch64/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/third_party/aprutil/gen/arch/linux/aarch64/include -I /usr/local/src/incubator-pagespeed-ngx/psol/include/url -I objs -I src/http -I src/http/modules -I src/http/v2 -I src/mail -I src/stream \
    -o objs/addon/src/ngx_pagespeed.o \
    /usr/local/src/incubator-pagespeed-ngx/src/ngx_pagespeed.cc
/usr/local/src/incubator-pagespeed-ngx/src/ngx_pagespeed.cc: In function ‘ngx_int_t net_instaweb::{anonymous}::ps_set_cache_control(ngx_http_request_t*, char*)’:
/usr/local/src/incubator-pagespeed-ngx/src/ngx_pagespeed.cc:407:36: error: request for member ‘elts’ in ‘r->ngx_http_request_s::headers_out.ngx_http_headers_out_t::cache_control’, which is of pointer type ‘ngx_table_elt_t*’ {aka ‘ngx_table_elt_s*’} (maybe you meant to use ‘->’ ?)
  407 |   if (r->headers_out.cache_control.elts == NULL) {
      |                                    ^~~~
/usr/local/src/incubator-pagespeed-ngx/src/ngx_pagespeed.cc:408:35: error: cannot convert ‘ngx_table_elt_t**’ {aka ‘ngx_table_elt_s**’} to ‘ngx_array_t*’
  408 |     ngx_int_t rc = ngx_array_init(&r->headers_out.cache_control, r->pool,
      |                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                   |
      |                                   ngx_table_elt_t** {aka ngx_table_elt_s**}
In file included from src/core/ngx_core.h:65,
                 from src/http/ngx_http.h:13,
                 from /usr/local/src/incubator-pagespeed-ngx/src/ngx_pagespeed.h:33,
                 from /usr/local/src/incubator-pagespeed-ngx/src/ngx_pagespeed.cc:26:
src/core/ngx_array.h:32:29: note:   initializing argument 1 of ‘ngx_int_t ngx_array_init(ngx_array_t*, ngx_pool_t*, ngx_uint_t, size_t)’
   32 | ngx_array_init(ngx_array_t *array, ngx_pool_t *pool, ngx_uint_t n, size_t size)
      |                ~~~~~~~~~~~~~^~~~~
/usr/local/src/incubator-pagespeed-ngx/src/ngx_pagespeed.cc:415:22: error: cannot convert ‘ngx_table_elt_t**’ {aka ‘ngx_table_elt_s**’} to ‘ngx_array_t*’
  415 |       ngx_array_push(&r->headers_out.cache_control));
      |                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                      |
      |                      ngx_table_elt_t** {aka ngx_table_elt_s**}
In file included from src/core/ngx_core.h:65,
                 from src/http/ngx_http.h:13,
                 from /usr/local/src/incubator-pagespeed-ngx/src/ngx_pagespeed.h:33,
                 from /usr/local/src/incubator-pagespeed-ngx/src/ngx_pagespeed.cc:26:
src/core/ngx_array.h:27:35: note:   initializing argument 1 of ‘void* ngx_array_push(ngx_array_t*)’
   27 | void *ngx_array_push(ngx_array_t *a);
      |                      ~~~~~~~~~~~~~^
/usr/local/src/incubator-pagespeed-ngx/src/ngx_pagespeed.cc: In function ‘bool net_instaweb::{anonymous}::ps_get_cache_control(ngx_http_request_t*, GoogleString*)’:
/usr/local/src/incubator-pagespeed-ngx/src/ngx_pagespeed.cc:439:74: error: request for member ‘elts’ in ‘r->ngx_http_request_s::headers_out.ngx_http_headers_out_t::cache_control’, which is of pointer type ‘ngx_table_elt_t*’ {aka ‘ngx_table_elt_s*’} (maybe you meant to use ‘->’ ?)
  439 |   auto ccp = static_cast<ngx_table_elt_t**>(r->headers_out.cache_control.elts);
      |                                                                          ^~~~
/usr/local/src/incubator-pagespeed-ngx/src/ngx_pagespeed.cc:444:59: error: request for member ‘nelts’ in ‘r->ngx_http_request_s::headers_out.ngx_http_headers_out_t::cache_control’, which is of pointer type ‘ngx_table_elt_t*’ {aka ‘ngx_table_elt_s*’} (maybe you meant to use ‘->’ ?)
  444 |   for (ngx_uint_t i = 0; i < r->headers_out.cache_control.nelts; i++) {
      |                                                           ^~~~~
make[1]: *** [objs/Makefile:1975: objs/addon/src/ngx_pagespeed.o] Error 1
make[1]: Leaving directory '/usr/local/src/nginx-1.23.1'
make: *** [Makefile:16: modules] Error 2

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.