CentOS 7에서 Nginx 컴파일: 고성능 맞춤형 웹 서버 구축

1. 인용문

Nginx는 뛰어난 성능, 안정성 및 유연성으로 유명한 고성능 오픈 소스 웹 서버입니다. 패키지 관리 도구를 통해 CentOS 7에 Nginx를 설치할 수 있지만 때로는 특정 요구 사항이나 고급 구성을 충족하기 위해 Nginx를 사용자 정의 컴파일해야 할 수도 있습니다.

이 튜토리얼에서는 필요에 맞게 사용자 정의할 수 있도록 CentOS 7의 소스에서 Nginx를 빌드하고 컴파일하는 방법을 보여줍니다. 컴파일 프로세스를 단계별로 안내하고 고성능 사용자 정의 웹 서버를 구축하는 데 도움이 되는 몇 가지 일반적인 구성 옵션과 제안 사항을 제공합니다.

개인 프로젝트를 위한 웹 서버를 구축하든 기업 애플리케이션을 구축하든 이 튜토리얼은 Nginx의 강력한 기능을 활용하고 최고의 성능과 보안을 얻는 데 필요한 지침과 지식을 제공합니다.

시작하자! 다음은 CentOS 7에서 Nginx를 컴파일하기 위한 세부 단계와 고려 사항입니다.

2. 설치 전 준비사항

1. 방화벽과 SELinux를 끄세요.

systemctl stop firewalld
setenforce 0

2. nginx 설치 패키지 다운로드

공식 웹사이트(mysql.org)로 이동하여 컴파일 및 설치 패키지(https://nginx.org/download/nginx-1.22.1.tar.gz)를 다운로드합니다. 

3. 설치 패키지 업로드

설치 패키지가 성공적으로 다운로드될 때까지 기다린 후 "rz" 명령을 사용하여 설치 패키지를 가상 머신에 업로드합니다. 우리가 준비한 가상 머신 환경이 CentOS 7의 최소화 버전인 경우 "rz" 명령이 없으며, "rz" 명령을 설치해야 합니다.

yum -y installl lrzsz

설치가 성공적으로 완료되면 업로드할 수 있습니다.

4. 설치 패키지의 압축을 푼다

"tar zxvf" 명령을 사용하여 설치 패키지(nginx-1.22.1.tar.gz)의 압축을 풀면 폴더(nginx-1.22.1)가 표시됩니다.

tar zvxf nginx-1.22.1.tar.gz

5. 종속성 설치

이런 방식으로 다음 작업은 nginx-1.22.1 디렉터리로 이동하는 것이며 실행 가능한 프로그램 구성을 볼 수 있습니다. 이것이 우리가 컴파일하려는 파일이지만, 컴파일하기 전에 nginx 컴파일에 필요한 몇 가지 종속성을 설치해야 합니다. 다음과 같이:

nginx编译所需要的依赖有gcc(c语言编译器)

gcc-c++(c++的编译器)

pcre(使nginx支持http rewrite模块)

pcre-devel(PCRE库的开发包)

gd-devel(是与GD图形库相关的开发包)

openssl-devel(是与OpenSSL加密库相关的开发包)

 zlib(提供nginx对http包的内容进行gzip压缩)

zlib-devel(是与zlib压缩库相关的开发包)

컴파일 종속성을 설치하려면 yum 소스를 사용하세요.​ 

yum -y install gcc gcc-c++ pcre pcre-devel gd-devel openssl-devel  zlib zlib-devel        #安装依赖

설치가 완료될 때까지 기다렸다가 성공적으로 설치되지 않은 종속성이 있는지 확인하고, 문제가 없으면 종속성이 설치된 것입니다.​ 

6. 설치 매개변수 구성

종속성 설치가 완료되면 설치 매개변수를 구성할 차례입니다. 그러나 구성하기 전에 nginx 계정을 사용하여 nginx 서비스를 관리할 수 있도록 nginx에 대한 로그인 사용자를 생성하는 것이 좋습니다. 많은 권한이 있습니다.소프트웨어가 나타나면 취약점으로 인해 루트 권한이 유출될 수 있습니다.

useradd nginx -s /sbin/nologin

계정이 성공적으로 생성된 후 설치 매개변수 구성을 시작합니다. 아래에 nginx의 몇 가지 공통 매개변수가 나열되어 있습니다. 필요에 따라 선택할 수 있습니다.

--prefix=/usr/local/nginx                        //指向安装目录
--conf-path=/etc/nginx/nginx.conf                //指定配置文件
--http-log-path=/var/log/nginx/access.log        //指定访问日志
--error-log-path=/var/log/nginx/error.log        //指定错误日志
--lock-path=/var/lock/nginx.lock                 //指定lock文件
--pid-path=/run/nginx.pid                        //指定pid文件

--http-client-body-temp-path=/var/lib/nginx/body    //设定http客户端请求临时文件路径
--http-fastcgi-temp-path=/var/lib/nginx/fastcgi     //设定http fastcgi临时文件路径
--http-proxy-temp-path=/var/lib/nginx/proxy         //设定http代理临时文件路径
--http-scgi-temp-path=/var/lib/nginx/scgi           //设定http scgi临时文件路径
--http-uwsgi-temp-path=/var/lib/nginx/uwsgi         //设定http uwsgi临时文件路径

--with-debug                                        //启用debug日志
--with-ipv6                                         //启用ipv6支持
--with-http_ssl_module                              //启用ssl支持
--with-http_stub_status_module                      //获取nginx自上次启动以来的状态
--with-http_realip_module                 //允许从请求标头更改客户端的IP地址值,默认为关
--with-http_auth_request_module           //实现基于一个子请求的结果的客户端授权。如果该子请求返回的2xx响应代码,所述接入是允许的。如果它返回401或403中,访问被拒绝与相应的错误代码。由子请求返回的任何其他响应代码被认为是一个错误。
--with-http_addition_module               //作为一个输出过滤器,支持不完全缓冲,分部分响应请求
--with-http_dav_module                    //增加PUT,DELETE,MKCOL:创建集合,COPY和MOVE方法 默认关闭,需编译开启
--with-http_geoip_module                  //使用预编译的MaxMind数据库解析客户端IP地址,得到变量值
--with-http_gunzip_module                 //它为不支持“gzip”编码方法的客户端解压具有“Content-Encoding: gzip”头的响应。
--with-http_gzip_static_module            //在线实时压缩输出数据流
--with-http_spdy_module                   //SPDY可以缩短网页的加载时间
--with-http_sub_module                    //允许用一些其他文本替换nginx响应中的一些文本
--with-http_xslt_module                   //过滤转换XML请求
--with-mail                               //启用POP3/IMAP4/SMTP代理模块支持
--with-mail_ssl_module                    //启用ngx_mail_ssl_module支持启用外部模块支持

아래 제가 구성한 파라미터들은 각자의 필요에 맞게 구성해 놓았으니 참고하시면 됩니다.

./configure --prefix=/usr/local/nginx \
		--group=nginx \
		--user=nginx \
		--sbin-path=/usr/local/nginx/sbin/nginx \
		--conf-path=/etc/nginx/nginx.conf

 구성 과정에서 오류가 발생하면 Makefile을 삭제하고 다시 구성하기만 하면 됩니다.

7. 컴파일하고 컴파일하고 설치하세요

"make" 명령을 사용하여 컴파일하고 "make install" 명령을 사용하여 컴파일 및 설치합니다.

make && make install  #编译和编译安装

 이 컴파일 및 설치 과정은 시간이 오래 걸릴 수 있으므로 인내심을 갖고 기다려야 합니다. 컴파일 및 설치가 완료된 후 /usr/local/ 디렉터리로 이동하여 nginx 디렉터리가 있는지 확인해야 합니다. nginx 디렉토리를 보면 컴파일이 성공했다는 의미입니다. . 다음으로 nginx 서비스를 시작할 수 있습니다.

8. nginx 서비스 시작

확인 및 확인이 완료되면 nginx 서비스를 시작할 수 있습니다.먼저 /usr/local/nginx/sbin 디렉터리로 이동한 후 "./nginx" 명령을 사용하여 nginx 서비스를 시작합니다. 그런 다음 "ps -ef |grep nginx" 명령을 사용하여 nginx 프로세스를 확인하여 설치 성공 여부를 확인합니다. 실행 중인 nginx 프로세스가 있으면 축하합니다. nginx 서비스가 성공적으로 설정되었습니다.

3. 결론 

이 튜토리얼에서는 CentOS 7의 소스에서 Nginx를 컴파일하는 방법을 자세히 설명하고 고성능 사용자 정의 웹 서버를 구축하는 데 도움이 되는 몇 가지 일반적인 구성 옵션과 권장 사항을 제공합니다.

Nginx를 사용자 정의 컴파일하면 특정 요구 사항에 따라 유연하게 구성하고 최적화하여 최고의 성능과 보안을 얻을 수 있습니다. Nginx를 컴파일하기 전에 관련 컴파일 종속성과 시스템 요구 사항을 이해하고 이 튜토리얼의 단계를 따르십시오.

CentOS 7은 많은 서버 환경에 적합한 널리 사용되는 Linux 배포판이기 때문에 CentOS 7에서 컴파일하기로 결정했습니다. 다른 운영 체제나 버전을 사용하는 경우 해당 문서와 리소스를 참조하여 적용 가능성과 정확성을 확인하세요.

이 튜토리얼을 읽어주셔서 감사합니다! Nginx를 컴파일하여 기대한 결과를 얻었고 프로젝트에서 이를 최대한 활용할 수 있기를 바랍니다.

질문이나 의견이 있으시면 언제든지 댓글 섹션에 메시지를 남겨주세요. 고성능 맞춤형 웹 서버 구축에 행운이 있기를 바랍니다!

추천

출처blog.csdn.net/XX_HK/article/details/134023659