Ubuntu

在 nginx 1.15.8 中安裝 more_set_headers

  • October 12, 2020

Ubuntu 16 伺服器 -load_module modules/ngx_http_headers_more_filter_module.so無法從全新安裝中解決問題。

root@ /etc/nginx # nginx -V
nginx version: nginx/1.15.8
built by gcc 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10)
built with OpenSSL 1.0.2g  1 Mar 2016
TLS SNI support enabled
configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fPIC' --with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -pie'

在嘗試安裝時,nginx-extras我收到一個依賴錯誤。

root@ /etc/nginx # apt-get install nginx-extras
Reading package lists... Done
Building dependency tree
Reading state information... Done
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:
nginx-extras : Depends: nginx-common (= 1.10.3-0ubuntu0.16.04.3) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

為了滿足依賴,它帶我回到 nginx 1.10

我通過添加到/etc/apt/sources.list文件來安裝 nginx

# nginx
deb http://nginx.org/packages/mainline/ubuntu/ xenial nginx
deb-src http://nginx.org/packages/mainline/ubuntu/ xenial nginx

有人可以闡明我的問題嗎?

這就是我在 Ubuntu 16.04 上啟用 more_set_headers 所做的,因為該模組是一個額外的模組,而不是由 nginx 創建的,如下面的@MichaelHampton 所述。在他的指導下,我能夠使用 more_set_headers 安裝 nginx。

#==  I backed up my nginx folder to home    
tar -czvf /home/nginx.tar.gz /etc/nginx

#==  I removed then purged nginx - not sure if both are necessary
sudo apt remove nginx
sudo apt autoremove
sudo apt purge nginx

#==  I removed all nginx entries from /etc/apt/sources.list
nano /etc/apt/sources.list

#==  I did an apt-update and installed nginx
sudo apt update
sudo apt upgrade
sudo apt install nginx

#== I checked the version that was installed
nginx -v

#==  I then upgraded nginx to the latest stable
sudo apt install software-properties-common
nginx=stable 
sudo add-apt-repository ppa:nginx/$nginx
sudo apt update
sudo apt dist-upgrade

#==  I then installed nginx-extras
sudo apt install nginx-extras

完成上述操作後,我編輯了我的/etc/nginx/nginx.conf並添加了以下內容作為我的第一行:

load_module modules/ngx_http_headers_more_filter_module.so;

然後,我將以下內容添加到 http 塊:

more_set_headers Server: Uber;

我檢查了我的配置是否正常nginx -t

最後,我重新啟動了伺服器service nginx restart

作為最後的檢查,我去了https://securityheaders.com,看看是否顯示“Nginx”。請務必選中隱藏結果關注重定向

檢查標頭安全性的結果

希望這可以幫助某人

引用自:https://serverfault.com/questions/954708