1. Linux에서 nginx 설치 및 구성
nginx를 처음 설치하는 과정에서 발생하는 문제는 단계별로 해결됩니다.
서버에 연결하고 로그인하는 데 사용되는 도구는 secureCRT입니다.
1.1 rz 명령을 실행하면 대화 상자가 나타나면 업로드할 nginx 압축 패키지를 선택하세요.
#rz
1.2 압축 풀기
[root@vw010001135067 ~]# cd /usr/local/ [root@vw010001135067 local]# tar -zvxf nginx-1.10.2.tar.gz
1.3 nginx 폴더에 들어가서 ./configure 명령을 실행합니다
[root@vw010001135067 local]# cd nginx-1.10.2 [root@vw010001135067 nginx-1.10.2]# ./configure
다음과 같이 오류가 보고됩니다.
checking for OS + Linux 2.6.32-431.el6.x86_64 x86_64 checking for C compiler ... not found ./configure: error: C compiler cc is not found
이 오류가 발생합니다. 그러면 gcc 패키지가 설치되지 않습니다.
1.3.1 gcc 설치
gcc 보기
[root@vw010001135067 nginx-1.10.2]# whereis gcc gcc:
gcc 설치
[root@vw010001135067 nginx-1.10.2]# yum -y install gcc
설치 성공 후 다시 확인해 보세요
[root@vw010001135067 nginx-1.10.2]# whereis gcc gcc: /usr/bin/gcc /usr/lib/gcc /usr/libexec/gcc /usr/share/man/man1/gcc.1.gz
gcc가 설치되어 있습니다.
1.3.2 계속 실행하여 ./configure
[root@vw010001135067 nginx-1.10.2]# ./configure checking for OS + Linux 2.6.32-431.el6.x86_64 x86_64 checking for C compiler ... found ...... checking for PCRE library ... not found checking for PCRE library in /usr/local/ ... not found checking for PCRE library in /usr/include/pcre/ ... not found checking for PCRE library in /usr/pkg/ ... not found checking for PCRE library in /opt/local/ ... not found ./configure: error: the HTTP rewrite module requires the PCRE library. You can either disable the module by using --without-http_rewrite_module option, or install the PCRE library into the system, or build the PCRE library statically from the source with nginx by using --with-pcre=<path> option.
위 오류가 발생합니다. pcre-devel
[root@vw010001135067 nginx-1.10.2]# yum install pcre-devel
1.3.3을 설치하고 다시 실행하세요./configure
error: the HTTP gzip module requires the zlib library. You can either disable the module by using --without-http_gzip_module option, or install the zlib library into the system, or build the zlib library statically from the source with nginx by using --with-zlib=<path> option.
이 오류가 발생하면
yum install zlib-devel
1.3.4 ./configure
[root@vw010001135067 nginx-1.10.2]# ./configure checking for OS + Linux 2.6.32-431.el6.x86_64 x86_64 checking for C compiler ... found + using GNU C compiler + gcc version: 4.4.7 20120313 (Red Hat 4.4.7-17) (GCC) ....... Configuration summary + using system PCRE library + OpenSSL library is not used + md5: using system crypto library + sha1: using system crypto library + using system zlib library nginx path prefix: "/usr/local/nginx" nginx binary file: "/usr/local/nginx/sbin/nginx" nginx modules path: "/usr/local/nginx/modules" nginx configuration prefix: "/usr/local/nginx/conf" nginx configuration file: "/usr/local/nginx/conf/nginx.conf" nginx pid file: "/usr/local/nginx/logs/nginx.pid" nginx error log file: "/usr/local/nginx/logs/error.log" nginx http access log file: "/usr/local/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"
1.4 openssl 기능을 사용하려면 sha1 기능을 실행한 후 오류가 보고되지 않습니다. 그런 다음 openssl을 설치하고 sha1
[root@vw010001135067 nginx-1.10.2]# yum install openssl openssl-devel [root@vw010001135067 nginx-1.10.2]# install perl-Digest-SHA1.x86_64
1.4.1 SSL 모듈 실행을 활성화합니다./configure –with-http_ssl_module
[root@vw010001135067 nginx-1.10.2]# ./configure --with-http_ssl_module
1.4.2 활성화 " server+status" 페이지에서 ./configure –with-http_stub_status_module
[root@vw010001135067 nginx-1.10.2]# ./configure --with-http_stub_status_module
위의 두 명령을 동시에 시작할 수 있습니다
[root@vw010001135067 nginx-1.10.2]# ./configure --with-http_stub_status_module --with-http_ssl_module
1.5 위의 구성에는 통과
make 명령어 실행, make install 명령어 실행
[root@vw010001135067 nginx-1.10.2]# make [root@vw010001135067 nginx-1.10.2]# make install
이때 nginx 실행 성공
1.6 환경변수 설정
/etc /profile에서 구성 추가
구성 파일 열기
[root@vw010001135067 nginx-1.10.2]# vi /etc/profile
구성 파일에
#nginx configure export NGINX_HOME=/usr/local/nginx-1.10.2 export PATH=$PATH:$NGINX_HOME/sbin
추가
위와 같이 채우기 시작했는데, nginx -v를 사용해도 찾을 수 없었습니다. 위의 nginx_home 구성 주소가 잘못되었음을 확인했습니다. 먼저 nginx
[root@vw010001135067 nginx-1.10.2]# whereis nginx nginx: /usr/local/nginx
설치 주소를 찾아보세요. 주소가 정말 틀리네요. 위의 내용을
#nginx configure export NGINX_HOME=/usr/local/nginx export PATH=$PATH:$NGINX_HOME/sbin
로 변경하세요. 🎜>
컴파일 후 저장하고 종료한 후[root@vw010001135067 nginx-1.10.2]# source /etc/profile
[root@vw010001135067 nginx]# nginx -v nginx version: nginx/1.10.2
[root@vw010001135067 nginx]# cd /usr/local/nginx [root@vw010001135067 nginx]# nginx -c conf/nginx.conf
#user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024;#最大连接数,默认为512 accept_mutex on; #设置网路连接序列化,防止惊群现象发生,默认为on multi_accept on; #设置一个进程是否同时接受多个网络连接,默认为off #use epoll; #事件驱动模型,select|poll|kqueue|epoll|resig|/dev/poll|eventport } http { #文件扩展名与文件类型映射表 include mime.types; #默认文件类型,默认为text/plain default_type application/octet-stream; #自定义格式 log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; #combined为日志格式的默认值 access_log logs/access.log main; #允许sendfile方式传输文件,默认为off,可以在http块,server块,location块 sendfile on; sendfile_max_chunk 100k; #每个进程每次调用传输数量不能大于设定的值,默认为0,即不设上限。 #tcp_nopush on; #连接超时时间,默认为75s,可以在http,server,location块。 keepalive_timeout 65; #gzip on; upstream upload { server 10.1.29.15:8080; } error_page 404 https://www.baidu.com; #错误页 server { keepalive_requests 120; #单连接请求上限次数。 listen 80; #监听端口 server_name localhost; #监听地址 #charset koi8-r; #access_log logs/host.access.log main; location ~ ^.*?/upload/[^/]*?$ { proxy_connect_timeout 15; proxy_send_timeout 15; proxy_read_timeout 15; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Connection ""; proxy_pass http://upload; #请求转向upload 定义的服务器列表 client_max_body_size 1024m; } } }
[root@vw010001135067 nginx]# nginx -s reload