CentOS7に基づいて自動的に起動するようにNginxを構成します

Nginxは、人気のある軽量Webサーバーソフトウェアです。オープンソースで、短くて強力で、シンプルで使いやすく、インターネット企業やIT運用および保守担当者の間で人気があります。多くの場合、コンパイル方法に基づいて実稼働環境にNginxをインストールした後、サーバーが異常にダウンした後にサービスが自動的に再起動されるように、Nginxは自動開始サービスを手動で構成する必要があります。参考までに、CentOS7に基づく自動起動サービスの構成について説明します。

1つは、yumのインストール方法Nginxの自己起動##

現在の環境
[ 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.

3つ、より多くの参照##

[ 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

CentOS7に基づいて自動的に起動するようにNginxを構成します
CentOS7に基づいてNginxリバースプロキシを構成する
CentOS7に基づいてNginxロードバランシングを構成する
CentOS7に基づいてNginxフォワードプロキシを構成する
CentOS8にNginxをインストールする方法
Centos 7(仮想ホストを含む)に基づいてNginxを構築する
CentOS7にElasticsearchをインストールして構成する方法
CentOS6でOcservを構成する
CentOS8にVNCをインストールして構成する方法
CentOS8にRedisをインストールして構成する方法
CentOS6にphpMyAdminをインストールして構成する方法
CentOS8にOwncloudをインストールして構成する方法
CentOS8にRedmineをインストールして構成する方法
CentOS8でVsftpdを使用してFTPサーバーを構成する方法
Ubuntu18.04に基づいて固定IPを構成する方法
CentOS8にNFSサーバーをインストールして構成する方法
CentOS8でVsftpdを使用してFTPサーバーを構成する方法
Let'sEncryptを使用してCentOS8でNginxを保護する方法
CentOS7でスワップスペースを構成する
CentOS7に基づくZabbix3.4をインストールします
CentOS7にNginxサーバーをインストールします
CentOS8にPostfixメールサーバーをインストールして構成する方法
centOS7にjdk1.8をインストールする方法
CentOS8にMySQLをインストールする方法
CentOS8にRをインストールする方法
CentOS8にFFmpegをインストールする方法
CentOS8にVirtualboxをインストールする方法
CentOSでrsyslogログクライアントを構成する
Ubuntu20.04にNginxをインストールする方法
CentOS8にTensorFlowをインストールする方法
Centos7でgcc4.9.xに更新する方法
CentOS8にTeamViewerをインストールする方法
CentOS8にGradleをインストールする方法
CentOS8にElasticsearchをインストールする方法
CentOS8にJenkinsをインストールする方法
CentOS8にGoをインストールする方法
CentOS8にGCCをインストールする方法
CentOS8にYarnをインストールする方法
CentOS7にAsteriskをインストールする方法
CentOS8にJenkinsをインストールする方法
CentOS8にVagrantをインストールする方法
CentOS8にPython3.8をインストールする方法
CentOS8にTomcat9をインストールする方法
CentOS8にWebminをインストールする方法
CentOS8にRubyをインストールする方法
CentOS8にSkypeをインストールする方法
CentOS8にhtopをインストールする方法
CentOS8にPythonをインストールする方法
dockerに基づいてElasticsearch6.2.4(centos)を構築する
CentOS8にElasticsearchをインストールする方法
Ubuntu14.04でNginxを保護する方法
LinuxでNginx環境を構築する(CentOS)
CentOS8にPostgresqlをインストールする方法
CentosにWordpressをインストールする方法
Ubuntu20.04にNginxをインストールする方法
CentOS8にhtopをインストールする方法
centos7でpython3環境を構成し、
CentOSに基づいてDiscuzフォーラムを構築する
CentOS8にTeamViewerをインストールする方法
CentOS7にスワップを追加する方法
CentOS8にMariaDBをインストールする方法