>운영 및 유지보수 >엔진스 >Linux에서의 Nginx 설치 사례 분석

Linux에서의 Nginx 설치 사례 분석

WBOY
WBOY앞으로
2023-05-22 08:46:051363검색

시스템 바이너리 소스 방법을 사용하여 설치

ubuntu/debian 시스템

sudo apt-get install nginx

또는 redhat/centos 시스템

sudo yum install nginx

이 방법이 가장 간단하고 빠른 방법이지만 최선의 방법은 아닙니다. 다음 이 주요 문제에 대해 이야기해 보세요.

장점

  • 모든 설치 바이너리 종속성이 처리되었으므로 호환성 문제에 대해 걱정할 필요가 없습니다. 즉시 사용할 수 있습니다.

  • nginx 연결 구성, 사용자 권한이 필요하지 않습니다. 차단됨

  • nginx 버그 유지 관리 및 업그레이드에 대해 걱정하지 말고 최신 시스템을 구입하세요.

  • 간단한 제거, 단 하나의 명령

  • 단점

설치된 버전을 독립적으로 선택할 수 없습니다

    컴파일된 모듈을 독립적으로 선택할 수 없습니다
  • 기능을 확장하기가 매우 번거롭고 다시 컴파일해야 합니다
  • 카테고리 구조가 복잡하고 구성 파일이 /etc 아래에 있습니다. /, 배포 파일은 /var/www에 있습니다
  • 서비스를 다시 시작하고 구성을 수정하려면 루트 권한이 필요합니다
  • 컴파일 및 설치 성능이 약간 떨어집니다
  • Linux 초보자라면 이 설치 방법을 사용하는 것이 좋습니다. 컴파일 종속성을 고려할 필요가 없으며 설치 후 바로 사용할 수 있습니다. 그러나 서버가 프로덕션 환경에서 사용되고 개발 및 점진적으로 개선되는 경우에는 이 방법을 권장하지 않습니다. 타사 모듈은 향후 추가될 수 있으며, 해당 시점에 컴파일하고 설치해야 합니다(아래 설명). 서버를 다시 시작할 때 루트 사용자를 사용하지 말고 sudo를 사용하여 잠시 루트를 얻으십시오. 서버가 주로 일부 웹 공간에 대해 일부 정적 파일을 배포하는 데 사용되고 일반적으로 ftp 도구를 사용하여 파일을 배포하는 경우 이 방법에는 확실히 문제가 없습니다.
  • 컴파일 및 설치

장단점에 대해서는 쓰지 않고 기본적으로 위의 내용을 반대로 작성합니다. 이 방법을 사용하여 설치하려면 Linux 컴파일에 대한 약간의 지식이 있어야 하며, 보통 수준의 Linux 사용자만 이를 제어할 수 있습니다. 인터넷의 대부분의 튜토리얼에서는 컴파일 종속성을 /usr/local/에 직접 설치하는 것을 보았습니다. 이 방법은 좋지 않습니다. 나중에 이러한 종속성을 제거하려면 매우 번거로운 작업이 될 것입니다. 카테고리 아래에서 직접 삭제할 수는 없습니다. 일부 Linux 배포판에서는 이러한 구성 파일을 어디서 찾을 수 있는지 모르겠습니다. 종속 버전이 다른 소프트웨어에 영향을 미치는 경우 버전 문제를 처리하는 방법. 우리는 nginx를 설치하고 싶었지만 많은 문제가 발생했습니다.

컴파일 환경 준비

시작하기 전에 Linux에 gcc, make, wget, g++ 및 기타 소프트웨어가 준비되어 있는지 확인하세요.

다운로드한 파일을 저장할 카테고리를 생성하고, 종속 라이브러리 소스 파일을 다운로드할 디렉터리를 입력하세요.

ssl 모듈 암호화에 주로 사용되는 openssl 다운로드, https 지원

wget https://www.openssl.org/source/openssl-1.0.2s.tar.gz

pcre를 다운로드하여 주소 리디렉션 및 주소 다시 쓰기 기능 구현 및 지원 로컬션 지시문 및 정규 표현식용

wget https://ftp.pcre.org/pub/pcre/pcre-8.43.tar.gz

zlib gzip 압축 모듈 다운로드

wget https://zlib.net/zlib-1.2.11.tar.gz

nginx 다운로드

wget http://nginx.org/download/nginx-1.17.1.tar.gz

tar를 사용하여 모든 파일의 압축 풀기

ls *.tar.gz | xargs -n1 tar xzvf

컴파일 옵션

./configure를 사용하여 다음을 포함한 다양한 nginx 매개변수 스크립트 설정 소스 및 구성 파일 경로, 컴파일러 옵션, 링크 처리 방법 및 모듈 목록. 스크립트는 코드를 컴파일하고 nginx 오픈 소스를 설치하는 데 필요한 makefile을 생성하여 이를 수행합니다.

参数 描述
–prefix=98953a78f52873edae60a617ec082494 nginx安装目录,以及有其他配置脚本选项的路径设置的所有相对路径的基本位置。默认值/usr/local/nginx
–sbin-path=7988e5ef09cb060996e437e0d2342881/sbin/nginx
–conf-path=98953a78f52873edae60a617ec082494 nginx配置文件的名称。但是,您可以通过在nginx命令行上使用选项指定其他文件来始终在启动时覆盖此值。默认值:aac119f8a3a563a827b4e4c50481b4e7 conf / nginx.conf-c 2334ac29606bf8a170583e4f7533b1f4
–pid-path=98953a78f52873edae60a617ec082494 nginx.pid文件的名称,用于存储nginx主进程的进程id 。安装后,可以使用nginx配置文件中的pid指令更改文件名的路径。默认值:aac119f8a3a563a827b4e4c50481b4e7 /logs/nginx.pid
–error-log-path=98953a78f52873edae60a617ec082494 error,warn和诊断数据的日志文件的名称。安装后,可以使用nginx配置文件中的error_log指令更改文件名。默认值:aac119f8a3a563a827b4e4c50481b4e7 /logs/error.log
–http-log-path=98953a78f52873edae60a617ec082494 http服务器请求的主日志文件的名称。安装后,始终可以使用nginx配置文件中的access_log指令更改文件名。默认值:aac119f8a3a563a827b4e4c50481b4e7 /logs/access.log
–user=8a11bc632ea32a57b3e3693c7987c420 nginx运行进程的拥有者。安装后,可以使用nginx配置文件中的user指令更改名称。默认:nobody
–group=name nginx运行进程的拥有者用户组。安装后,可以使用nginx配置文件中的user指令更改名称。默认值:–user选项设置的值
–with-pcre=98953a78f52873edae60a617ec082494 pcre库源代码的路径,这是位置指令和rewrite模块中正则表达式支持所必需的
–with-pcre-jit 使用“即时编译”支持(pcre_jit指令)构建pcre库
–with-zlib=98953a78f52873edae60a617ec082494 zlib库的源代码路径,gzip模块需要该路径
–with-http_ssl_modul 启用https支持
–with-http_v2_module 开启 http/2请求支持

还要太多编译参数我就不一一列举,有兴趣的同学可以自己去

参看

编译安装

./configure \
  --with-openssl=../openssl-1.0.2s \
  --with-pcre=../pcre-8.43 \
  --with-zlib=../zlib-1.2.11 \
  --with-pcre-jit --user=admin \
  --prefix=/home/admin/nginx \
  --with-http_ssl_module \
  --with-http_v2_module

输出以下信息,说明依赖没问题

configuration summary
 + using pcre library: ../pcre-8.43
 + using openssl library: ../openssl-1.0.2s
 + using zlib library: ../zlib-1.2.11
 
 nginx path prefix: "/home/admin/nginx"
 nginx binary file: "/home/admin/nginx/sbin/nginx"
 nginx modules path: "/home/admin/nginx/modules"
 nginx configuration prefix: "/home/admin/nginx/conf"
 nginx configuration file: "/home/admin/nginx/conf/nginx.conf"
 nginx pid file: "/home/admin/nginx/logs/nginx.pid"
 nginx error log file: "/home/admin/nginx/logs/error.log"
 nginx http access log file: "/home/admin/nginx/logs/access.log"
 nginx http client request body temporary files: "client_body_temp"
 nginx http proxy temporary files: "proxy_temp"
 nginx http fastcgi temporary files: "fastcgi_temp"
 nginx http uwsgi temporary files: "uwsgi_temp"
 nginx http scgi temporary files: "scgi_temp"

编译

make

安装

make install

设置权限

因为linux设置普通用户,不能占用1024一下的端口,直接启动nginx会出现权限不足的错误。将nginx分配给root用户,在分配特殊权限。

sudo chown root nginx
sudo chmod u+s nginx

위 내용은 Linux에서의 Nginx 설치 사례 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제