詳細編譯安裝nginx請參考【Nginx目錄結構與配置文件詳解】以及【Nginx安裝部署】,在這裏就進行簡單安裝html
操做系統:linux
[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.gznginx
注意:編譯安裝必定要安裝開發工具,不然沒法進行安裝或安裝報錯c++
[root@localhost opt]# yum -y install openssl openssl-devel zlib zlib-devel pcre pcre-devel make gcc gcc-c++
[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
[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是啓動加載文件,在linux中要把一個程序加入開機啓動,通常能夠經過修改rc.local來完成,這個文件時開機就要加載的文件,因此咱們就能夠利用linux這個文件設置nginx開機自啓動centos
[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啓動命令加入此文件中bash
[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
而後讓咱們重啓系統再次查看端口和進程dom
[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 ~]#
pid文件是進程文件裏面存放的是程序運行的進程ID也就是進程號
nginx生成pid文件須要修改配置文件
修改內容以下:tcp
默認配置文件有這一條,若是沒有請在nginx.conf中找到這一條而後將前面註釋刪除就能夠了 pid logs/nginx.pid;
/usr/lib/systemd/system 此目錄是用來存放一些系統服務的
nginx文件內容:ide
[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啓動方式在centos7系統版本已經不推薦使用了
文件內容以下:
#!/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
在centos7中init.d中的服務默認也會在system目錄中