Skip to content

Instantly share code, notes, and snippets.

@sasasin
Last active June 25, 2020 14:27
Show Gist options
  • Save sasasin/935081a7e5b2253e6e9c970314877075 to your computer and use it in GitHub Desktop.
Save sasasin/935081a7e5b2253e6e9c970314877075 to your computer and use it in GitHub Desktop.
Amazon Linux 1にOSS版nginxの最新版をインストールするやつ

Amazon Linux 1にOSS版nginxは素直に入らない

これで簡単に入ることになってる。RHELとCentOSの場合は。 https://nginx.org/en/linux_packages.html#RHEL-CentOS

Amazon Linux 1 は、 amzn-updates, amzn-main に ngnix という同名パッケージが依存関係を込みで含まれているため、repoファイル転がして yum install -y nginx だとコンフリクトしてインストールできない。

手作業で試行錯誤

docker run -it --rm amazonlinux:1 /bin/bash

Dockerfileにした

てきとうな場所にDockerfile置いて

$ docker build -t amazonlinux:1-nginx-stable .
$ docker run -itd --rm -p 8080:80 amazonlinux:1-nginx-stable
d16fd1a93a947011bba89f32a50cd475ac2b562599e0d0bc45a696be0f66aa92

$ curl -I -i localhost:8080
HTTP/1.1 200 OK
Date: Thu, 25 Jun 2020 14:23:15 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Thu, 25 Jun 2020 13:38:19 GMT
Connection: keep-alive
ETag: "5ef4a8cb-264"
Accept-Ranges: bytes

add_header などでは Server そのものは出てしまいますが、 more_clean_headerを使うことで、Serverも消せています。

FROM amazonlinux:1
RUN echo $'[nginx-stable]\n\
name=nginx stable repo\n\
baseurl=https://nginx.org/packages/centos/6/$basearch/\n\
gpgcheck=1\n\
enabled=0\n\
gpgkey=https://nginx.org/keys/nginx_signing.key\n\
module_hotfixes=true\n\
priority=1\n\
\n\
[nginx-stable-source]\n\
name=nginx stable repo\n\
baseurl=https://nginx.org/packages/centos/6/SRPMS/\n\
gpgcheck=1\n\
enabled=0\n\
gpgkey=https://nginx.org/keys/nginx_signing.key\n\
module_hotfixes=true\n\
priority=1' > /etc/yum.repos.d/nginx.repo
WORKDIR /root
RUN yum install -y initscripts shadow-utils
RUN yum install -y gcc pcre-devel zlib-devel openssl-devel rpm-build
RUN curl -L -O https://nginx.org/packages/centos/6/SRPMS/nginx-1.18.0-1.el6.ngx.src.rpm
RUN rpm -ivh /root/nginx-1.18.0-1.el6.ngx.src.rpm
RUN rpmbuild --rebuild /root/nginx-1.18.0-1.el6.ngx.src.rpm
RUN rpm -ivh /root/nginx-1.18.0-1.el6.ngx.src.rpm
RUN ls -alF /root/rpmbuild/SOURCES
RUN rpm -ivh /root/rpmbuild/RPMS/x86_64/nginx-1.18.0-1.amzn1.ngx.x86_64.rpm
RUN curl -L -O https://github.com/openresty/headers-more-nginx-module/archive/v0.33.tar.gz
RUN tar xzf v0.33.tar.gz
WORKDIR /root/rpmbuild/SOURCES
RUN ls -alF
RUN mkdir nginx-src
RUN tar xzf nginx-*.tar.gz -C nginx-src --strip-components 1
WORKDIR /root/rpmbuild/SOURCES/nginx-src
RUN ./configure --with-compat --add-dynamic-module=/root/headers-more-nginx-module-0.33
RUN make modules
RUN cp /root/rpmbuild/SOURCES/nginx-src/objs/ngx_http_headers_more_filter_module.so /usr/lib64/nginx/modules
RUN sed -ie "7a load_module /usr/lib64/nginx/modules/ngx_http_headers_more_filter_module.so;" /etc/nginx/nginx.conf
RUN sed -ie "30a more_clear_headers Server;" /etc/nginx/nginx.conf
RUN cat -n /etc/nginx/nginx.conf
WORKDIR /
EXPOSE 80
STOPSIGNAL SIGTERM
CMD ["nginx", "-g", "daemon off;"]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment