Nginx 서버 설치 및 설정
25969 단어 NginxCentOS7소프트웨어 설치 설정
1. 우선 부족 한 의존 팩 설치
[root@localhost /]# yum -y install gcc gcc-c++ make libtool zlib zlib-devel openssl openssl-devel pcre pcre-devel
[root@localhost src]# wget http://nginx.org/download/nginx-1.13.3.tar.gz
[root@localhost src]# tar xvf nginx-1.13.3.tar.gz
[root@localhost src]# cd nginx-1.13.3
3. 컴 파일 설치
후속 준 비 를 위해 플러그 인 모듈 2 개 를 따로 다운로드 합 니 다: nginxupstream_check_module - 0.3.0. tar. gz - 백 엔 드 서버 의 상 태 를 검사 합 니 다. nginx - goodies - nginx - sticky - module - ng - bd312d586752. tar. gz (/ usr / local / src 에서 압축 을 풀 고 디 렉 터 리 를 nginx - sticky - module - ng - 1.2.5 로 이름 을 바 꾸 는 것 을 권장 합 니 다) * - 백 엔 드 부하 균형 해결 session sticky 질문 *.
#
[root@localhost src]# wget -O "nginx_upstream_check_module-0.3.0.tar.gz" https://codeload.github.com/yaoweibin/nginx_upstream_check_module/tar.gz/v0.3.0
[root@localhost nginx-1.13.3]# wget -O "nginx-sticky-module-ng-1.2.5.zip" https://bitbucket.org/nginx-goodies/nginx-sticky-module-ng/get/08a395c66e42.zip
#
[root@localhost src]# tar -xvf nginx_upstream_check_module-0.3.0.tar.gz
[root@localhost src]# unzip nginx-sticky-module-ng-1.2.5.zip
[root@localhost src]# mv nginx-goodies-nginx-sticky-module-ng-08a395c66e42/ nginx-sticky-module-ng-1.2.5
[root@localhost nginx-1.13.3]# ./configure \
--prefix=/usr/local/nginx \
--with-pcre \
--user=nginx \
--group=nginx \
--with-http_stub_status_module \
--with-http_ssl_module \
--with-http_gzip_static_module \
--with-http_realip_module \
--pid-path=/usr/local/nginx/run/nginx.pid \
--without-mail_pop3_module \
--without-mail_imap_module \
--without-mail_smtp_module \
--add-module=../nginx_upstream_check_module-0.3.0 \
--add-module=../nginx-sticky-module-ng-1.2.5
[root@localhost nginx-1.13.3]# make
[root@localhost nginx-1.13.3]# make install
make 는 서버 가 쌍 핵 이 라면 - j2 를 통 해 쌍 핵 으로 컴 파일 할 수 있 는 작은 기술 이 있 습 니 다. - j4 는 4 핵 컴 파일 을 대표 합 니 다.
상용 컴 파일 옵션 설명
1. Nginx 실행 에 사용 할 사용자 ww 만 들 기
[root@localhost conf]# groupadd nginx
[root@localhost conf]# useradd -g nginx nginx
2. nginx. conf 설정
nginx 기본 설정 파일 도 nginx 를 정상적으로 시작 할 수 있 습 니 다.여기에 프로필 의 예 시 를 따로 제공 합 니 다.
다음 nginx. conf 는 nginx 가 전단 에서 역방향 프 록 시 서버 를 만 드 는 예 를 간단하게 실현 하고 js, png 등 정적 파일, jsp 등 동적 요청 을 다른 서버 로 전송 합 니 다.
[root@localhost conf]# cat /usr/local/nginx/conf/nginx.conf
user nginx nginx;
worker_processes 2;
error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
pid /usr/local/nginx/run/nginx.pid;
events {
use epoll;
worker_connections 2048;
}
http {
include mime.types;
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"';
#access_log logs/access.log main;
sendfile on;
# tcp_nopush on;
keepalive_timeout 65;
# gzip
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 6;
gzip_types text/html text/plain text/css text/javascript application/json application/javascript application/x-javascript application/xml;
gzip_vary on;
# http_proxy
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 75;
proxy_send_timeout 75;
proxy_read_timeout 75;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
proxy_temp_path /usr/local/nginx/proxy_temp 1 2;
#
upstream backend {
#ip_hash;
server 192.168.10.100:8080 max_fails=2 fail_timeout=30s ;
server 192.168.10.101:8080 max_fails=2 fail_timeout=30s ;
}
#
server {
listen 80;
server_name itoatest.example.com;
root /apps/oaapp;
charset utf-8;
access_log logs/host.access.log main;
# / +
location / {
root /apps/oaapp;
index index.jsp index.html index.htm;
proxy_pass http://backend;
proxy_redirect off;
# Web X-Forwarded-For IP
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_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
}
# ,nginx , backend tomcat
location ~* /download/ {
root /apps/oa/fs;
}
location ~ .*\.(gif|jpg|jpeg|bmp|png|ico|txt|js|css)$
{
root /apps/oaapp;
expires 7d;
}
location /nginx_status {
stub_status on;
access_log off;
allow 192.168.10.0/24;
deny all;
}
location ~ ^/(WEB-INF)/ {
deny all;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
## ,server
}
3. 설정 파일 ngnix. conf 의 정확성 명령 검사
[root@localhost conf]# /usr/local/nginx/sbin/nginx -t
3. 시스템 서비스 에 추가
Nginx 설치 완료 후 기본적으로 시스템 서비스 로 등록 되 지 않 기 때문에 시스템 서비스 스 크 립 트 를 수 동 으로 추가 해 야 합 니 다./ etc / init. d 디 렉 터 리 에 nginx 파일 을 새로 만 들 고 권한 을 변경 하면 됩 니 다.
1. 새 nginx 시작 스 크 립 트
[root@localhost src]# vim /etc/init.d/nginx
#!/bin/bash
#
# nginx - this script starts and stops the nginx daemin
#
# chkconfig: - 85 15
# description: Nginx is an HTTP(S) server, HTTP(S) reverse \
# proxy and IMAP/POP3 proxy server
# processname: nginx
# config: /usr/local/nginx/conf/nginx.conf
# pidfile: /usr/local/nginx/logs/nginx.pid
nginxd=/usr/local/nginx/sbin/nginx
nginx_config=/usr/local/nginx/conf/nginx.conf
nginx_pid=/usr/local/nginx/logs/nginx.pid
RETVAL=0
prog="nginx"
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0
[ -x $nginxd ] || exit 0
# Start nginx daemons functions.
start(){
if [ -e $nginx_pid ]; then
echo "nginx already running..."
exit 1
fi
echo -n $"Starting $prog:"
daemon $nginxd -c ${nginx_config}
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch /var/lock/subsys/nginx
return $RETVAL
}
# Stop nginx daemons functions.
stop(){
echo -n $"Stopping $prog:"
killproc $nginxd
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f /var/lock/subsys/nginx $nginx_pid
}
#reload nginx service functions.
reload(){
echo -n $"Reloading $proc:"
killproc $nginxd -HUP
RETVAL=$?
echo
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
reload)
reload
;;
restart)
stop
start
;;
status)
status $prog
RETVAL=$?
;;
*)
echo $"Usage: $prog {start|stop|restart|reload|status|help}"
exit 1
esac
exit $RETVAL
2. 권한 수정 및 시동
1. 환경 변수 설정
[root@localhost nginx-1.13.3]# vim /etc/profile.d/nginx.sh
export PATH=/usr/local/nginx/sbin:$PATH
2. 설 정 된 변 수 를 불 러 옵 니 다.
[root@localhost nginx-1.13.3]# source /etc/profile
3. 다음은 nginx 에서 자주 사용 하 는 명령 입 니 다. 이 명령 을 정상적으로 사용 할 수 있다 면 nginx 가 설치 되 었 음 을 설명 합 니 다.
질문
1. nginx 시작 후 "systemctl status nginx" 를 사용 하여 시작 상 태 를 봅 니 다.
[root@localhost logs]# systemctl status nginx
● nginx.service - SYSV: Nginx is an HTTP(S) server, HTTP(S) reverse proxy and IMAP/POP3 proxy server
Loaded: loaded (/etc/rc.d/init.d/nginx; bad; vendor preset: disabled)
Active: active (running) since 2017-07-20 17:00:44 CST; 39min ago
Docs: man:systemd-sysv-generator(8)
Process: 2968 ExecStart=/etc/rc.d/init.d/nginx start (code=exited, status=0/SUCCESS)
Main PID: 2971 (nginx)
CGroup: /system.slice/nginx.service
├─2971 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
└─2973 nginx: worker process
7 20 17:00:44 localhost systemd[1]: Starting SYSV: Nginx is an HTTP(S) server, HTTP(S) reverse proxy and IMAP/POP3 proxy server...
7 20 17:00:44 localhost nginx[2968]: /etc/rc.d/init.d/nginx: 26 :[: =:
7 20 17:00:44 localhost nginx[2968]: Starting nginx:[ ]
7 20 17:00:44 localhost systemd[1]: PID file /usr/local/nginx/logs/nginx.pid not readable (yet?) after start.
질문 1. / etc / rc. d / init. d / nginx: 26 번 째 줄: [: =: 1 원 표현 식 기대
해결 방법: ["$yn"! = "] 변수 에 따 옴 표를 붙 입 니 다.
문제 2, PID 파일 / usr / local / nginx / logs / nginx. pid 를 읽 을 수 없습니다 (아직?) 시작 후.
해결 방법: 1. nginx 가 실행 중인 그룹 과 사용 자 를 만 들 고 해당 디 렉 터 리 를 새 그룹 과 사용자 에 게 할당 합 니 다. 2. 디 렉 터 리 권한 을 읽 을 수 있 는 쓰기 로 변경 합 니 다: chmod - R 766 logs /
2. 시동 이 걸 리 지 않 음
7 20 16:17:51 localhost nginx[2671]: Starting nginx:nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
7 20 16:17:51 localhost nginx[2671]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
7 20 16:17:52 localhost nginx[2671]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
7 20 16:17:52 localhost nginx[2671]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
7 20 16:17:53 localhost nginx[2671]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
7 20 16:17:53 localhost nginx[2671]: nginx: [emerg] still could not bind()
7 20 16:17:53 localhost nginx[2671]: [ ]
7 20 16:17:53 localhost systemd[1]: nginx.service: control process exited, code=exited status=1
7 20 16:17:53 localhost systemd[1]: Failed to start SYSV: Nginx is an HTTP(S) server, HTTP(S) reverse proxy and IMAP/POP3 proxy server.
포트 가 점용 되 었 는 지 확인 하기
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
linux2에 nginx 설치설치 가능한 nginx를 확인하고, 해당 nginx를 설치한다. localhost 혹은 해당 ip로 접속을 하면 nginx 화면을 볼 수 있다....
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.