찾다
운영 및 유지보수엔진스Debian 시스템에서 PHP 프로그램용 Nginx 서버를 구성하는 방법

nginx 설치 방법:

1 apt 네트워크 설치

소스 목록 수정

vi /etc/apt/sources.list
#加入以下源
deb http://nginx.org/packages/debian/ squeeze nginx
deb-src http://nginx.org/packages/debian/ squeeze nginx

소스 목록을 업데이트하고 apt

apt-key add nginx_signing.key
apt-get update
apt-get install nginx

를 통해 nginx를 설치합니다. 2 소스 코드 컴파일 및 설치
nginx가 먼저 컴파일 환경을 설치해야 하기 때문입니다. 향후 Perl 규칙성, 압축 알고리즘, SSL 및 기타 기능을 사용해야 하므로 관련 라이브러리 파일을 미리 설치해야 합니다.

apt-get install build-essential 
apt-get install libpcre3 libpcre3-dev zlib1g zlib1g-dev openssl libssl-dev libssl0.9.8

nginx의 최신 안정 버전을 다운로드

wget http://nginx.org/download/nginx-1.2.3.tar.gz
압축을 풀고 컴파일 옵션을 봅니다.

tar zxvf nginx-1.2.3.tar.gz
cd nginx-1.2.3
#--help可以看到可以配置的参数
./configure --help

컴파일을 위한 선택적 구성 매개변수를 봅니다( 다음은 일반적으로 사용되는 구성 항목 중 일부입니다.


--prefix=path 지정되지 않은 경우 nginx의 기본 설치 경로입니다. 기본값은 /usr/local/nginx

--sbin-path=path      nginx 실행 명령 파일의 경로입니다. 지정하지 않으면 기본값은 /sbin/nginx</prefix></p> <p>--conf-path=입니다. path      nginx 구성 파일 경로가 지정되지 않은 경우 기본값은 <prefix>/conf/nginx.conf</prefix></p> <p>--error-log-path=path nginx.conf에서 오류 로그 경로를 지정하기 위해 error_log를 사용하지 않는 경우, 기본값은 <prefix>/logs /error.log</prefix></p> <p>--http-log-path=path 액세스된 파일의 로그 저장 경로를 정의합니다. nginx.conf에 access_log가 지정되지 않은 경우 기본값은 <prefix>입니다. /logs/access.log</prefix></p> <p>- -pid-path=path nginx.conf에서 pid 파일 경로를 지정하기 위해 pid를 사용하지 않는 경우 기본값은 <prefix>/logs/nginx.pid</prefix></p> <p>--lock-입니다. path=path 잠금 파일은 경로를 저장합니다. nginx에 있는 경우 .conf에 지정되지 않은 경우 기본값은 <prefix>/logs/nginx.lock</prefix></p> <p>--user=user입니다. 사용자를 정의하는 데 사용되지 않는 경우 nginx.conf에서 실행되는 프로세스의 소유자, 기본값은 none</p> <p>-- Group = Group 그룹이 nginx.conf에서 실행되는 사용자 정의 프로세스를 사용하지 않는 경우 기본값은Nobody</p> <p>-Builddir = Dir Set Build Directory</p> <p>-With-RTSIG_WITH-SELECT_MO dule 선택 모드를 사용합니다. 현재 플랫폼에 다른 유효한 모드가 없으면 기본적으로 컴파일됩니다. </p> <p>--without-select_module             선택 모드 비활성화 </p> <p>--with-poll_module                 폴링 모드 사용 , 현재 플랫폼에 다른 유효한 모드가 없으면 기본적으로 컴파일됩니다. </p> <p>- -without-poll_module                                                         버그 --with 명령을 사용하여 다음 모듈을 켭니다</p> <p> --with-http_mp4_module mp4 모듈 활성화 </p> <p> --with-http_gzip_static_module gzip 모듈 활성화 </p> <p> --with-http_secure_link_module 활성화 ngx_http_secure_link_module </p> <p> --with-http_stub_status _module 상태 보기 모듈 켜기</p> <p> 다음 모듈은 다음에 의해 켜집니다. 기본값이며 관련 모듈을 끄는 옵션 없이 사용할 수 있습니다. </p> <p> --without-http_charset_module ngx_http_charset_module 비활성화 </p> <p> --without-http_gzip_module gzip 압축 모듈 비활성화 </p> <p> --without-http_ssi_module SSL 모듈 비활성화 </p> <p> --without - http_userid_module ngx_http_userid_module</p> <p> --within-http_access_module 액세스 모듈 비활성화 </p> <p> --without-http_auth_basic_module auth_basic 인증 모듈 비활성화 </p> <p> --without-http_autoindex_module 디렉터리 목록 모듈 비활성화 </p> <p> --without-http_geo_module 지리 모듈 비활성화 </p> <p> --없이 -http_map_module 맵 모듈 비활성화</p> <p> --without-http_referer_module ngx_http_referer_module 비활성화</p> <p> --without-http_rewrite_module 리디렉션 모듈 비활성화 </p> <p> --without-http_proxy_module 프록시 모듈 비활성화 </p> <p> --without-http_fastcgi_module fastcgi 모듈 비활성화 </p> <p> --with 아웃- http_uwsgi_module ngx_http_uwsgi_module 비활성화</p> <p> - -without-http_scgi_module 비활성화 ngx_http_scgi_module</p> <p> --without-http_memcached_module 비활성화 ngx_http_memcached_module</p> <p> --without-http_limit_conn_module 비활성화 ngx_http_limit_conn_ module</p> <p> --without-http_limit _req_module 비활성화 ngx_http_limit_req_module</p> <p> --without-http_empty_gif_module 비활성화 ngx_http_empty_gif_module</p> <p> --without-http_browser_module ngx_http_browser_module 비활성화 </p> <p> --without-http_upstream_ip_hash_module </p> 업스트림 모듈 비활성화 🎜<p> --with-http_perl_module            开启perl模块<br>  --with-perl_modules_path=path      设置perl模块路径<br>  --with-perl=path                   为perl库设置路径<br>  --http-client-body-temp-path=path  set path to store http client request body temporary files<br>  --http-proxy-temp-path=path        set path to store http proxy temporary files<br>  --http-fastcgi-temp-path=path      set path to store http fastcgi temporary files<br>  --http-uwsgi-temp-path=path        set path to store http uwsgi temporary files<br>  --http-scgi-temp-path=path         set path to store http scgi temporary files<br>  --without-http                     禁用http服务<br>  --without-http-cache               禁用http cache<br>  --with-mail                       开启mail服务<br>  --with-mail_ssl_module             在mail服务中开启ssl<br>  --without-mail_pop3_module         disable ngx_mail_pop3_module<br>  --without-mail_imap_module         disable ngx_mail_imap_module<br>  --without-mail_smtp_module         disable ngx_mail_smtp_module<br>  --with-google_perftools_module     开启google_perftools模块<br>  --with-cpp_test_module             开启cpp_test模块<br>  --add-module=path                  enable an external module<br>  --without-pcre                     禁止使用perl正则库<br>  --with-pcre                        强制使用perl正则库</p> <p><strong>     编译安装</strong></p><pre class='brush:php;toolbar:false;'>./configure --prefix=/etc/nginx/ --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-file-aio --with-ipv6

    结果如下图:

Debian 시스템에서 PHP 프로그램용 Nginx 서버를 구성하는 방법

  编译并安装

make && make install

     ps:fastcgi回顾
     fastcgi是一个可伸缩地、高速地在http server和动态脚本语言间通信的接口。多数流行的http server都支持fastcgi,包括apache、nginx和lighttpd等,同时,fastcgi也被许多脚本语言所支持,其中就有php。fastcgi是从cgi发展改进而来的。传统cgi接口方式的主要缺点是性能很差,因为每次http服务器遇到动态程序时都需要重新启动脚本解析器来执行解析,然后结果被返回给http服务器。这在处理高并发访问时,几乎是不可用的。另外传统的cgi接口方式安全性也很差,现在已经很少被使用了。fastcgi接口方式采用c/s结构,可以将http服务器和脚本解析服务器分开,同时在脚本解析服务器上启动一个或者多个脚本解析守护进程。当http服务器每次遇到动态程序时,可以将其直接交付给fastcgi进程来执行,然后将得到的结果返回给浏览器。这种方式可以让http服务器专一地处理静态请求或者将动态脚本服务器的结果返回给客户端,这在很大程度上提高了整个应用系统的性能。
    nginx不支持对外部程序的直接解析,所有的外部程序(包括php)必须通过fastcgi接口来调用。fastcgi接口在linux下是socket,(这个socket可以是文件socket,也可以是ip socket)。为了调用cgi程序,还需要一个fastcgi的wrapper(wrapper可以理解为用于启动另一个程序的程序),这个wrapper绑定在某个固定socket上,如端口或者文件socket。当nginx将cgi请求发送给这个socket的时候,通过fastcgi接口,wrapper接纳到请求,然后派生出一个新的线程,这个线程调用解释器或者外部程序处理脚本并读取返回数据;接着,wrapper再将返回的数据通过fastcgi接口,沿着固定的socket传递给nginx;最后,nginx将返回的数据发送给客户端,这就是nginx+fastcgi的整个运作过程。

Debian 시스템에서 PHP 프로그램용 Nginx 서버를 구성하는 방법

php-fpm

php5.3版本源码已经默认支持php-fpm了,但是debian6认为它还没经过广泛的测试,所以在debian6的软件仓库中,虽然php版本为5.3.3,但是却没包含php-fpm,如果不想手工编译安装php的话可以换一个源。
    
     修改源列表

vi /etc/apt/sources.list
deb http://packages.dotdeb.org stable all
deb-src http://packages.dotdeb.org stable all

    更新源列表,安装php5-fpm

apt-get update wget http://www.dotdeb.org/dotdeb.gpg
cat dotdeb.gpg | apt-key add -
apt-get install php5-fpm

    安装其他常用php5组件

apt-get install php5 php5-cgi php5-cli php5-mysql php5-memcache

    启动php-fpm

/etc/init.d/php5-fpm start

    这样的话最基本的nginx+php环境就搭建完毕了。   

nginx配置文件粗解
nginx的配置文件结构类似下图这样的结构:

Debian 시스템에서 PHP 프로그램용 Nginx 서버를 구성하는 방법

配置文件主要参照编译完成后生成的默认配置文件。

   主模块的配置选项

    user指令设置进程以什么用户运行,在源码编译安装时指定的nginx用户,如果在编译时没有指定,默认是nobody账户,在配置文件中此行处于注释状态,  user 指令可以设置两个参数,第一个指定进程所属用户,第二个是可选,指定进程所属组

  user nginx nobody;

    设置工作进程数,一个工作进程为一个单线程,在cpu密集型环境中,可以设置worker_processes数目为cpu核数

  worker_processes 4;

    指定nginx错误日志文件的位置,如果要禁止错误日志使用error_log /dev/null,error_log可以存在于不同的字段main、http、server等,文件后面可以指定记录的日志的默认等级。

  error_log logs/error.log;

    设置pid文件路径,可以使用kill命令发送相关信号

  pid    logs/nginx.pid;

    event模块配置选项,event模块主要控制nginx处理连接的方式

  events {

  #如果在configure时指定的不止一个事件模型,可以通过use告诉nginx要使用哪一个模型:seletc、poll、kqueue、epoll、rtsig、/dev/poll、eventport等

  use epoll;

  #worker_connections和worker_processes可以计算你的理论最大链接数, worker_connections*worker_processes

  worker_connections 1024;

}

    http模块里面主要是对http服务器相关属性进行设置

 http {

  #可以用include指令包含一些其他文件,支持通配符,可以使用绝对路径,也可以使用相对路径,相对路径以nginx.conf为根据

  include    mime.types;

  #设置默认的mime类型

  default_type application/octet-stream;

  #描述记录日志的格式,在定义格式时可以使用一些变量,各个变了的含义可以从各个模块汇总查找

  log_format main &#39;$remote_addr - $remote_user [$time_local] "$request" &#39;

           &#39;$status $body_bytes_sent "$http_referer" &#39;

           &#39;"$http_user_agent" "$http_x_forwarded_for"&#39;;

  #指定访问日志的路径和格式,缓冲区大小

  access_log logs/access.log main;

  #sendfile拷贝文件在内核态完成,更加高效

  sendfile    on;

  #tcp_nopush   on;

  #可以设置两个值,第一个表示客户端与服务器长连接的超时时间,超过这个时间,服务器将关闭连接。第二个值指定的应答头中keep-alive中timeout的值,让浏览器知道什么时候关闭连接。

  keepalive_timeout 65;

  #开启gzip压缩

  gzip on;

  #在三次握手时,发送给客户端应答后的超时时间,目前还没进入连接状态,只完成了两次握手,如果在规定时间没收到应答包,nginx将关闭链接

  send_timeout 30

  server {

     xxx

  }

}

    server模块嵌在http模块中,主要用来配置虚拟主机

  server {

    #指定server字段中可以被访问到的ip地址及端口

    listen    80;

    #将http请求的主机头与server中的server_name参数进行匹配,并找出第一个结果,如果没有server_name参数匹配上,则第一个出现listen的server将被匹配,多域名用空格分割

    server_name www.nginx.com;

    #设个指令是应答头重的content-type字段使用指定的编码集,off表示不在应答头重添加content-type信息

    charset off;

    #指定www.nginx.com域名的访问日志路径及格式

    access_log logs/host.access.log main;

    #如果在url中没有指定文件,则设置一个默认主页,可以设置多个文件,空格分开,可以在http、server、location中设置

    index index.php index.htm;

    #根据url的不同需求进行配置,可以使用字符串和正则匹配,最确切的匹配被使用,搜索到第一个后会停止

    # ~* 不区分大小写;~ 区分大小写;^~ 禁止在字符串匹配后检查正则;= 在url和location之间精确匹配,匹配完成后不做额外搜索。

    location /i/ {

      #请求到达后的文件根目录,在请求中root会把location匹配的值加到root指定的值后面,请求/i/a.php,则会是/html/i/a.php响应

      root  html;

      #在location中设置index

      index index.html index.htm;

    }

    #为错误代码指定相应的错误界面,可以用在http、server、location字段中。

    error_page 404       /404.html;

    # redirect server error pages to the static page /50x.html

    error_page  500 502 503 504 /50x.html;

    #精确匹配50x.html,真实响应是/html/50x.html

    location = /50x.html {

      root  html;

    }

    # proxy the php scripts to apache listening on 127.0.0.1:80

    location ~ \.php$ {

      proxy_pass  http://127.0.0.1;

    }

    #配置php脚本传至fastcgi

    location ~ \.php$ {

     root      html;

     fastcgi_pass  127.0.0.1:9000;

     fastcgi_index index.php;

     #/scripts是php脚本所在的目录

      fastcgi_param script_filename /scripts$fastcgi_script_name;

      include    fastcgi_params;

    }

    #拒绝访问.htaccess文件

    location ~ /\.ht {

      deny all;

    }

  }

위 내용은 Debian 시스템에서 PHP 프로그램용 Nginx 서버를 구성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
이 기사는 亿速云에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
Nginx vs. Apache : 웹 호스팅 및 트래픽 관리Nginx vs. Apache : 웹 호스팅 및 트래픽 관리Apr 12, 2025 am 12:04 AM

NGINX는 동시성이 높은 자원 소비 시나리오에 적합하지만 APACHE는 복잡한 구성 및 기능 확장이 필요한 시나리오에 적합합니다. 1.NGINX는 고성능과의 많은 동시 연결을 처리하는 것으로 알려져 있습니다. 2. Apache는 안정성과 풍부한 모듈 지원으로 유명합니다. 선택할 때는 특정 요구에 따라 결정해야합니다.

NGINX : 최신 웹 애플리케이션을위한 다목적 도구NGINX : 최신 웹 애플리케이션을위한 다목적 도구Apr 11, 2025 am 12:03 AM

nginxissentialderformodernwebapplicationsduetoitsrolessareareverseproxy, loadbalancer 및 Webserver, HighperformanceAndscalability를 제공합니다

Nginx SSL/TLS 구성 : HTTPS로 웹 사이트 보안Nginx SSL/TLS 구성 : HTTPS로 웹 사이트 보안Apr 10, 2025 am 09:38 AM

Nginx를 통해 웹 사이트 보안을 보장하려면 다음 단계가 필요합니다. 1. 기본 구성을 만들고 SSL 인증서 및 개인 키를 지정하십시오. 2. 구성 최적화, HTTP/2 및 OCSPStapling 활성화; 3. 인증서 경로 및 암호화 제품군 문제와 같은 공통 오류 디버그; 4. Let 'sencrypt 및 세션 멀티플렉싱 사용과 같은 응용 프로그램 성능 최적화 제안.

Nginx 인터뷰 질문 : ACE 귀하의 DevOps/System Admin 인터뷰Nginx 인터뷰 질문 : ACE 귀하의 DevOps/System Admin 인터뷰Apr 09, 2025 am 12:14 AM

NGINX는 고성능 HTTP 및 리버스 프록시 서버로 높은 동시 연결을 처리하는 데 능숙합니다. 1) 기본 구성 : 포트를 듣고 정적 파일 서비스를 제공합니다. 2) 고급 구성 : 리버스 프록시 및로드 밸런싱을 구현하십시오. 3) 디버깅 기술 : 오류 로그를 확인하고 구성 파일을 테스트하십시오. 4) 성능 최적화 : GZIP 압축을 활성화하고 캐시 정책을 조정합니다.

Nginx 캐싱 기술 : 웹 사이트 성능 향상Nginx 캐싱 기술 : 웹 사이트 성능 향상Apr 08, 2025 am 12:18 AM

Nginx 캐시는 다음 단계를 통해 웹 사이트 성능을 크게 향상시킬 수 있습니다. 1) 캐시 영역을 정의하고 캐시 경로를 설정하십시오. 2) 캐시 유효성 기간 구성; 3) 다른 컨텐츠에 따라 다른 캐시 정책을 설정합니다. 4) 캐시 저장 및로드 밸런싱을 최적화합니다. 5) 캐시 효과를 모니터링하고 디버그합니다. 이러한 방법을 통해 NGINX 캐시는 백엔드 서버 압력을 줄이고 응답 속도 및 사용자 경험을 향상시킬 수 있습니다.

Docker와 Nginx : 컨테이너화 된 응용 프로그램을 배포하고 스케일링합니다Docker와 Nginx : 컨테이너화 된 응용 프로그램을 배포하고 스케일링합니다Apr 07, 2025 am 12:08 AM

dockercompose를 사용하면 Nginx의 배포 및 관리를 단순화 할 수 있으며 Dockerswarm 또는 Kubernetes를 통한 스케일링은 일반적인 관행입니다. 1) DockerCompose를 사용하여 Nginx 컨테이너를 정의하고 실행하십시오. 2) Dockerswarm 또는 Kubernetes를 통한 클러스터 관리 및 자동 스케일링 구현.

고급 NGINX 구성 : 서버 블록 마스터 링 및 리버스 프록시고급 NGINX 구성 : 서버 블록 마스터 링 및 리버스 프록시Apr 06, 2025 am 12:05 AM

NGINX의 고급 구성은 서버 블록 및 리버스 프록시를 통해 구현 될 수 있습니다. 1. 서버 블록을 사용하면 여러 웹 사이트를 한쪽으로 실행할 수있게되면 각 블록은 독립적으로 구성됩니다. 2. 리버스 프록시는 요청을 백엔드 서버로 전달하여로드 밸런싱 및 캐시 가속도를 실현합니다.

Nginx 성능 튜닝 : 속도 및 낮은 대기 시간을 최적화합니다Nginx 성능 튜닝 : 속도 및 낮은 대기 시간을 최적화합니다Apr 05, 2025 am 12:08 AM

작업자 프로세스 수, 연결 풀 크기, GZIP 압축 및 HTTP/2 프로토콜을 활성화하고 캐시 및로드 밸런싱을 사용하여 NGINX 성능 튜닝을 달성 할 수 있습니다. 1. 작업자 프로세스 수 및 연결 풀 크기 조정 : Worker_ProcessesAuto; 이벤트 {worker_connections1024;}. 2. GZIP 압축 및 HTTP/2 프로토콜 활성화 : http {gzipon; server {listen443sslhttp2;}}. 3. 캐시 최적화 사용 : http {proxy_cache_path/path/to/cachelevels = 1 : 2k

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구

맨티스BT

맨티스BT

Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기