Quando executo nginx -V
, recebo algo assim na saída.
--with-ld-opt='-lrt -ljemalloc -Wl,-z,relro' --with-cc-opt='-m64 -mtune=native -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wno-sign-compare -Wno-string-plus-int -Wno-deprecated-declarations -Wno-unused-parameter -Wno-unused-const-variable -Wno-conditional-uninitialized -Wno-mismatched-tags -Wno-c++11-extensions -Wno-sometimes-uninitialized -Wno-parentheses-equality -Wno-tautological-compare -Wno-self-assign -Wno-deprecated-register -Wno-deprecated -Wno-invalid-source-encoding -Wno-pointer-sign -Wno-parentheses -Wno-enum-conversion'
O que é isso e como saber quais valores precisam ir aqui ao compilar o nginx do código-fonte?
Fora da caixa, você provavelmente não precisa fornecer nenhum sinalizador, o script configure deve detectar automaticamente alguns padrões razoáveis.
No entanto, para otimizar a velocidade e/ou segurança, você provavelmente deve fornecer alguns sinalizadores do compilador. A Red Hat publicou um artigo sobre as coleções de bandeiras que eles consideram boas. Os sinalizadores que começam com
-Wl
são usados pelo vinculador, portanto, você deve fornecê-los usando--with-ld-opt
. Por exemplo-Wl,-pie
, se tornaria--with-ld-opt="-pie"
.Outra maneira razoável de fazer isso seria copiar as opções usadas pelos pacotes fornecidos pela sua distribuição. O mantenedor provavelmente sabe o que estava fazendo, e você pelo menos sabe que funciona para o seu caso de uso.
Esta opção do Nginx mostra as opções de configuração (necessárias para configurar seu compilador e vinculador):
Como esta página de documentação diz -> http://nginx.org/en/docs/configure.html :
Portanto, os primeiros são o que você deseja adicionar a um vinculador (ld), o segundo é destinado a um compilador (cc, gcc, etc.). Para obter mais informações sobre essas opções, consulte a página man do gcc: https://linux.die.net/man/1/gcc
Quando você digita o seguinte comando:
nginx -V -h
onde:
-V: : show version and configure options then exit
Assim, você pode configurar sua compilação de acordo usando vários parâmetros. A compilação pode ser configurada usando o comando configure.
Configure de acordo com a sua necessidade e onde quer que esteja preso basta adicionar
-h
para obter as informações sobre um determinado argumento em sua configuração.