Nginxは、人気のある軽量Webサーバーソフトウェアです。オープンソースで、短くて強力で、シンプルで使いやすく、インターネット企業やIT運用および保守担当者の間で人気があります。多くの場合、コンパイル方法に基づいて実稼働環境にNginxをインストールした後、サーバーが異常にダウンした後にサービスが自動的に再起動されるように、Nginxは自動開始サービスを手動で構成する必要があります。参考までに、CentOS7に基づく自動起動サービスの構成について説明します。
現在の環境
[ root@node142 ~]# more /etc/redhat-release
CentOS Linux release 7.2.1511(Core)
nginxrpmパッケージを保護するかどうかを確認します
[ root@node142 ~]# rpm -qa|grep nginx
nginx-mod-http-geoip-1.12.2-2.el7.x86_64
nginx-1.12.2-2.el7.x86_64
nginx-filesystem-1.12.2-2.el7.noarch
nginx-mod-http-xslt-filter-1.12.2-2.el7.x86_64
nginx-mod-stream-1.12.2-2.el7.x86_64
nginx-mod-http-perl-1.12.2-2.el7.x86_64
nginx-mod-http-image-filter-1.12.2-2.el7.x86_64
nginx-all-modules-1.12.2-2.el7.noarch
nginx-mod-mail-1.12.2-2.el7.x86_64
対応するサービスが存在するかどうかを確認します。次のように、nginxがあります。.service
[ root@node142 ~]# systemctl list-unit-files |grep nginx
nginx.service disabled
自動に構成する
[ root@node142 ~]# systemctl enable nginx.service
nginxを表示.サービスファイル
[ root@node142 ~]# more /lib/systemd/system/nginx.service
[ Unit]
Description=The nginx HTTP and reverse proxy server
After=network.target remote-fs.target nss-lookup.target
[ Service]
Type=forking
PIDFile=/run/nginx.pid
# Nginx will fail to start if/run/nginx.pid already exists but has the wrong
# SELinux context. This might happen when running `nginx -t`from the cmdline.
# https://bugzilla.redhat.com/show_bug.cgi?id=1268621
ExecStartPre=/usr/bin/rm -f /run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t
ExecStart=/usr/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
KillSignal=SIGQUIT
TimeoutStopSec=5
KillMode=process
PrivateTmp=true[Install]
WantedBy=multi-user.target
上記の設定ファイルの内容は、公式サイトで提供されているものとまったく同じです。
https://www.nginx.com/resources/wiki/start/topics/examples/systemd/
コンパイルとインストールなので、この自動起動スクリプトを自分で準備する必要があります。
具体的には、上記のリンクまたは上記のnginx.serviceファイルの内容を参照してください。
次に、それを/lib/systemd/system/nginx.serviceとして保存します。
以下の例を参照してください
# more /etc/redhat-release
CentOS Linux release 7.4.1708(Core)
# ps -ef|grep nginx
root 1009210014016:23 pts/000:00:00 grep --color=auto nginx
root 2079110 Mar20 ?00:00:00 nginx: master process ./sbin/nginx -c /u01/app/nginx/nginx.conf
nobody 20792207910 Mar20 ?00:00:44 nginx: worker process
nobody 20793207910 Mar20 ?00:00:42 nginx: worker process
nobody 20794207910 Mar20 ?00:00:50 nginx: worker process
nobody 20795207910 Mar20 ?00:00:44 nginx: worker process
nobody 20796207910 Mar20 ?00:00:43 nginx: worker process
nobody 20797207910 Mar20 ?00:00:43 nginx: worker process
nobody 20798207910 Mar20 ?00:00:37 nginx: worker process
nobody 20799207910 Mar20 ?00:00:48 nginx: worker process
nobody 20800207910 Mar20 ?00:00:04 nginx: cache manager process
#
対応するrpmパッケージがありません。次のようにクエリを実行します。コンパイルとインストールを行います
# rpm -qa|grep nginx
また、対応するセルフスタートサービスを追加しませんでした
# systemctl list-unit-files |grep nginx
nginxバージョン
# /u01/app/nginx/sbin/nginx -v
nginx version: nginx/1.8.1
nginxコンパイル済みモジュールを取得し、pid、バイナリの場所、レコードなどを表示して、起動ファイルを変更します
# /u01/app/nginx/sbin/nginx -V
nginx version: nginx/1.8.1
built by gcc 4.8.520150623(Red Hat 4.8.5-16)(GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled
configure arguments:--prefix=/u01/app/nginx --sbin-path=/u01/app/nginx/sbin/nginx
- - conf-path=/u01/app/nginx/nginx.conf --error-log-path=/u01/app/nginx/log/error.log
- - http-log-path=/u01/app/nginx/log/access.log --pid-path=/u01/app/nginx/nginx.pid
- - lock-path=/u01/app/nginx/nginx.lock --http-client-body-temp-path=/u01/app/nginx/client_temp
- - http-proxy-temp-path=/u01/app/nginx/proxy_temp
- - http-fastcgi-temp-path=/u01/app/nginx/fastcgi_temp
- - http-uwsgi-temp-path=/u01/app/nginx/uwsgi_temp --http-scgi-temp-path=/u01/app/nginx/scgi_temp
- - 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_gunzip_module
- - with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module
- - with-http_stub_status_module --with-http_auth_request_module --with-mail --with-mail_ssl_module
- - with-file-aio --with-http_spdy_module --with-ipv6
以下では、新しいnginxを生成します.サービスファイル
# vim /lib/systemd/system/nginx.service
[ Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target
[ Service]
Type=forking
PIDFile=/u01/app/nginx/nginx.pid
ExecStartPre=/u01/app/nginx/sbin/nginx -t
ExecStart=/u01/app/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true[Install]
WantedBy=multi-user.target
最初にnginxを手動で停止しましょう
# /u01/app/nginx/sbin/nginx -s stop
自動起動を構成する
# systemctl enable nginx.service
systemctlツールを使用してnginxサービスを開始します
# systemctl start nginx.service
# systemctl status nginx.service
● nginx.service - The NGINX HTTP and reverse proxy server
Loaded:loaded(/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
Active:active(running) since Thu 2018-03-2916:37:47 CST; 6s ago
Process:10588 ExecStart=/u01/app/nginx/sbin/nginx(code=exited, status=0/SUCCESS)
Process:10586 ExecStartPre=/u01/app/nginx/sbin/nginx -t(code=exited, status=0/SUCCESS)
Main PID:10590(nginx)
CGroup:/system.slice/nginx.service
├─10590 nginx: master process /u01/app/nginx/sbin/nginx
├─10591 nginx: worker process # Author : Leshami
├─10592 nginx: worker process # Blog : https://blog.csdn.net/leshami
├─10593 nginx: worker process
├─10594 nginx: worker process
├─10595 nginx: worker process
├─10596 nginx: worker process
├─10597 nginx: worker process
├─10598 nginx: worker process
├─10599 nginx: cache manager process
└─10600 nginx: cache loader process
Mar 2916:37:47 ydq-std systemd[1]: Starting The NGINX HTTP and reverse proxy server...
Mar 2916:37:47 ydq-std nginx[10586]: nginx: the configuration file /u01/app/nginx/nginx.conf syntax is ok
Mar 2916:37:47 ydq-std nginx[10586]: nginx: configuration file /u01/app/nginx/nginx.conf test is successful
Mar 2916:37:47 ydq-std systemd[1]: Started The NGINX HTTP and reverse proxy server.
[ Linux 6でのNginxのインストール、コンパイル、およびインストール](http://blog.csdn.net/leshami/article/details/51324959)[CentOS 7でのyumモードでのNginxのインストール](https://blog.csdn.net/robinson_0612/article/details/78323283)[CentOS7に基づくNginxリバースプロキシの構成]( https://blog.csdn.net/robinson_0612/article/details/78401884)[CentOS 7に基づいてNginxロードバランシングを構成する](https://cloud.tencent.com/developer/article/1177814?from=10680)
Recommended Posts