컴 파일 링 nginx 설치 시 자동 시작 설정

23733 단어
상세 컴 파일 설치 nginx [Nginx 디 렉 터 리 구조 와 프로필 상세 설명] 및 [Nginx 설치 배치] 를 참고 하여 간단 한 설 치 를 진행 합 니 다.
Nginx 설치
환경 소개
운영 체제:
[root@localhost ~]# cat /etc/redhat-release 
CentOS Linux release 7.6.1810 (Core) 
[root@localhost ~]# uname -a
Linux localhost.localdomain 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

nginx 소프트웨어 버 전: nginx - 1.17.6. tar. gz
설치 의존
주의: 컴 파일 설 치 는 반드시 개발 도 구 를 설치 해 야 합 니 다. 그렇지 않 으 면 설치 하거나 설치 할 수 없습니다.
[root@localhost opt]# yum -y install openssl openssl-devel zlib zlib-devel pcre pcre-devel make gcc gcc-c++

설치 nginx
[root@localhost ~]# cd /opt/
[root@localhost opt]# wget http://nginx.org/download/nginx-1.17.6.tar.gz
[root@localhost opt]# tar zxf nginx-1.17.6.tar.gz 
[root@localhost opt]# cd nginx-1.17.6/
[root@localhost opt]# cd nginx-1.17.6/
[root@localhost nginx-1.17.6]# 
[root@localhost nginx-1.17.6]# ls
auto CHANGES CHANGES.ru conf configure contrib html LICENSE man README src
[root@localhost nginx-1.17.6]# ./configure --prefix=/usr/local/nginx && make && make install

시작 테스트 nginx
[root@localhost nginx-1.17.6]# cd /usr/local/nginx/
[root@localhost nginx]# ls
conf html logs sbin
[root@localhost nginx]# cd sbin/
[root@localhost sbin]# ./nginx 
[root@localhost sbin]# netstat -anpl | grep nginx    //    
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 11881/nginx: master 
unix 3 [ ] STREAM CONNECTED 53405 11881/nginx: master 
unix 3 [ ] STREAM CONNECTED 53404 11881/nginx: master 
[root@localhost sbin]# ps aux | grep nginx    //    
jia 5496 0.0 0.0 302400 852 ? Sl 10:58 0:00 /usr/libexec/ibus-engine-simple
root 11881 0.0 0.0 20560 620 ? Ss 11:23 0:00 nginx: master process ./nginx
nobody 11882 0.0 0.1 23080 1632 ? S 11:23 0:00 nginx: worker process
root 11896 0.0 0.1 112728 988 pts/0 S+ 11:24 0:00 grep --color=auto ngin

시스템 명령 으로 설정
[root@localhost sbin]# ln nginx /usr/local/sbin/
[root@localhost ~]# nginx -t    //  nginx  
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@localhost ~]# nginx -s stop    //  nginx
[root@localhost ~]# which nginx    //        
/usr/local/sbin/nginx

방법 은 rc. local 스 크 립 트 를 이용 합 니 다.
rc. local 은 로 딩 파일 을 시작 합 니 다. Liux 에서 프로그램 을 시작 하려 면 rc. local 을 수정 하여 완성 할 수 있 습 니 다. 이 파일 을 시작 할 때 불 러 올 파일 이기 때문에 Liux 라 는 파일 을 이용 하여 nginx 를 시작 할 수 있 습 니 다.
[root@localhost ~]# cat /etc/rc.local //     /etc   

   rc.local     :

#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.
touch /var/lock/subsys/local

이 파일 을 사용 하면 시작 할 때 시작 하고 싶 은 명령 을 설정 할 수 있 습 니 다. 실행 하고 싶 은 명령 을 rc. local 에 직접 쓰 면 됩 니 다. nginx 시작 명령 을 이 파일 에 추가 합 니 다.
[root@localhost ~]# echo sh /usr/local/nginx/sbin/nginx >> /etc/rc.local 
[root@localhost ~]# cat /etc/rc.local 
#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.
touch /var/lock/subsys/local
/usr/local/nginx/sbin/nginx
      nginx                    
nginx

그리고 시스템 을 다시 시작 해서 포트 와 프로 세 스 를 다시 봅 시다.
[root@localhost ~]# reboot
     nginx     
[root@localhost ~]# netstat -anpl | grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 4847/nginx: master 
unix 3 [ ] STREAM CONNECTED 39265 4847/nginx: master 
unix 3 [ ] STREAM CONNECTED 39264 4847/nginx: master 
[root@localhost ~]# ps aux | grep nginx
root 4847 0.0 0.0 20560 612 ? Ss 11:45 0:00 nginx: master process /usr/local/nginx/sbin/nginx
nobody 4848 0.0 0.1 23080 1388 ? S 11:45 0:00 nginx: worker process
root 4860 0.0 0.1 112724 988 pts/0 S+ 11:45 0:00 grep --color=auto nginx
[root@localhost ~]# 

방법 2 설정 시스템 서비스
자동 시작 설정 추천
시작 을 설정 하여 pid 파일 생 성
pid 파일 은 프로 세 스 파일 에 프로그램 이 실행 중인 프로 세 스 ID 를 저장 합 니 다. 즉, 프로 세 스 번호 nginx 에서 pid 파일 을 생 성 하려 면 프로필 을 수정 해 야 합 니 다. * 수정 내용 은 다음 과 같 습 니 다. * *
          ,      nginx.conf                   
pid logs/nginx.pid;

/ usr / lib / systemd / system 경로 에 nginx. service 파일 추가
/ usr / lib / systemd / system 이 디 렉 터 리 는 시스템 서 비 스 를 저장 하 는 nginx 파일 내용 입 니 다.
[root@localhost system]# cat nginx.service 
[Unit]
Description=nginx    //  
After=syslog.target network.target remote-fs.target nss-lookup.target    \\      

[Service]
Type=forking    //
PIDFile=/usr/local/nginx/logs/nginx.pid    //  PID  
ExecStart=/usr/local/nginx/sbin/nginx    //    
ExecReload=/bin/kill -s HUP $MAINPID    //    
ExecStop=/bin/kill -s QUIT $MAINPID    //    
PrivateTmp=true    //         
*           
[Install]    ///
WantedBy=multi-user.target    

메모: 이 파일 은 754 권한 이 필요 합 니 다.
테스트 시작 닫 기
[root@localhost ~]# systemctl start nginx    //    
[root@localhost ~]# netstat -anpl | grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 5249/nginx: master 
unix 3 [ ] STREAM CONNECTED 42458 5249/nginx: master 
unix 3 [ ] STREAM CONNECTED 42459 5249/nginx: master 
[root@localhost ~]# systemctl stop nginx    //    
[root@localhost ~]# netstat -anpl | grep nginx
[root@localhost ~]# systemctl restart nginx    //      
[root@localhost ~]# netstat -anpl | grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 5289/nginx: master 
unix 3 [ ] STREAM CONNECTED 45346 5289/nginx: master 
unix 3 [ ] STREAM CONNECTED 45347 5289/nginx: master 

주의해 야 할 것 은 이전에 실행 한 스 크 립 트 를 사용 하여 서 비 스 를 시작 하 는 것 입 니 다. 이 방법 으로 서 비 스 를 닫 을 수 없습니다.
자동 시작 설정
[root@localhost ~]# systemctl enable nginx
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.
[root@localhost ~]# systemctl enable nginx

효과 다시 보기
[root@localhost ~]# netstat -anpl | grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 4081/nginx: master 
unix 3 [ ] STREAM CONNECTED 32429 4081/nginx: master 
unix 3 [ ] STREAM CONNECTED 32428 4081/nginx: master 

init. d 설정 켜 기 시작
init 시작 방식 은 centos 7 시스템 버 전에 서 추천 하지 않 습 니 다.
/ etc / init. d 디 렉 터 리 에 시작 파일 nginx 만 들 기
파일 내용 은 다음 과 같 습 니 다.
#!/bin/bash
# chkconfig: 345 80 20    //    
# description: start the nginx deamon    //  
# Source function library
. /etc/rc.d/init.d/functions

prog=nginx
#          CATALANA_HOME
CATALANA_HOME=/usr/local/nginx
export CATALINA_HOME

case "$1" in
start)
echo "Starting nginx..."
$CATALANA_HOME/sbin/nginx
;;

stop)
echo "Stopping nginx..."
$CATALANA_HOME/sbin/nginx -s stop
;;

restart)
echo "Stopping nginx..."
$CATALANA_HOME/sbin/nginx -s stop
sleep 2
echo
echo "Starting nginx..."
$CATALANA_HOME/sbin/nginx
;;
*)
echo "Usage: $prog {start|stop|restart}"
;;
esac
exit 0

권한 설정
[root@localhost ~]# chmod +x /etc/init.d/nginx    //      

테스트 시작
[root@localhost init.d]# service nginx start    //  nginx
Starting nginx (via systemctl): [    ]
[root@localhost init.d]# netstat -anpl | grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 4081/nginx: master 
unix 3 [ ] STREAM CONNECTED 38534 4081/nginx: master 
unix 3 [ ] STREAM CONNECTED 38535 4081/nginx: master 
[root@localhost init.d]# service nginx stop    //  nginx
Stopping nginx (via systemctl): [    ]
[root@localhost init.d]# netstat -anpl | grep nginx
[root@localhost init.d]# service nginx restart //    nginx
Restarting nginx (via systemctl): [    ]
[root@localhost init.d]# netstat -anpl | grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 5304/nginx: master 
unix 3 [ ] STREAM CONNECTED 43218 5304/nginx: master 
unix 3 [ ] STREA 

centos 7 에서 init. d 의 서 비 스 는 기본적으로 system 디 렉 터 리 에 있 습 니 다.

좋은 웹페이지 즐겨찾기