Rocky (centos) installs nginx and sets it to start automatically at boot

1. Install nginx

1. Install dependencies

yum install -y gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel

2. Go to the official website to download the latest stable version of nginx

nginx: downloadicon-default.png?t=N7T8http://nginx.org/en/download.html

3. Upload the downloaded nginx to /usr/local

or execute

#2023-10-8更新
cd /usr/local
wget http://nginx.org/download/nginx-1.24.0.tar.gz

Then decompress the command to decompress when the current path

tar -xzvf nginx-1.24.0.tar.gz

4. Install nginx

Switch to the decompression path

cd /usr/local/nginx-1.24.0

Configure and specify the installation path under /usr/local/nginx (this step will not generate the path, the path and files will be generated after installation)

./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_ssl_module

Execute the installation. The new system may prompt that there is no make command. Enter y to continue the installation and execution;

make install

After compilation, enter the picture below. You can execute the command to view the file directory of nginx.

whereis nginx

 Switch the path and delete the unzipped package

cd ..
rm -rf /usr/local/nginx-1.24.0

 5. Create a new self-starting script and upload it

1) Create a new nginx.service file

The content of the file is as follows

[Unit]
Description=nginx-The High-performance HTTP Server
After=network.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true

[Install]
WantedBy=multi-user.target

2) Upload the file to /etc/systemd/system

3) Create a new user group and user for nginx to run: run the following commands

groupadd -f www
useradd -g www www

6. Reload the service script and add auto-start

#重新载入服务列表
systemctl daemon-reload
#启动nginx
systemctl start nginx.service
#将nginx加入自启动脚本
systemctl enable nginx.service
#查看nginx状态
systemctl status nginx.service

 May use the command

#重启nginx
systemctl restart nginx.service
#查看nginx状态
systemctl status nginx.service

7. Test the self-starting effect

1) Run the reboot command to restart and connect the machine

After restarting, execute to check the occupation of port 80

netstat -tlunp |grep 80

2) Open port 80

firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload

 3) Direct browser access test



2. Configure nginx 

 The following is a relatively complete configuration

# 以下是全局段配置
#user administrator administrators;  #配置用户或者组,默认为nobody nobody。
#worker_processes 2;  #设置进程数,默认为1
#pid /nginx/pid/nginx.pid; #指定nginx进程运行文件存放地址
error_log log/error.log debug;  #制定日志路径,级别:debug|info|notice|warn|error|crit|alert|emerg
# events段配置信息
events {
    accept_mutex on;   #设置网路连接序列化,防止惊群现象发生,默认为on
    multi_accept on;  #设置一个进程是否同时接受多个网络连接,默认为off
    #use epoll;      #事件驱动模型,select|poll|kqueue|epoll|resig|/dev/poll|eventport
    worker_connections  1024;    #最大连接数,默认为512
}
# http、配置请求信息
http {
    include       mime.types;   #文件扩展名与文件类型映射表
    default_type  application/octet-stream; #默认文件类型,默认为text/plain
    #access_log off; #取消服务日志    
    log_format myFormat '$remote_addr–$remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for'; #自定义格式
    access_log log/access.log myFormat;  #combined为日志格式的默认值
    sendfile on;   #允许sendfile方式传输文件,默认为off,可以在http块,server块,location块。
    sendfile_max_chunk 100k;  #每个进程每次调用传输数量不能大于设定的值,默认为0,即不设上限。
    keepalive_timeout 65;  #连接超时时间,默认为75s,可以在http,server,location块。


    upstream mysvr {   
      server 127.0.0.1:7878;
      server 192.168.10.121:3333 backup;  #热备
    }
    error_page 404 https://www.baidu.com; #错误页
    # 第一个Server区块开始,表示一个独立的虚拟主机站点
    server {
        keepalive_requests 120; #单连接请求上限次数。
        listen       4545;   #监听端口
        server_name  127.0.0.1;   #监听地址       
        location  ~*^.+$ {       #请求的url过滤,正则匹配,~为区分大小写,~*为不区分大小写。
           #root path;  #根目录
           #index vv.txt;  #设置默认页
           proxy_pass  http://mysvr;  #请求转向mysvr 定义的服务器列表
           deny 127.0.0.1;  #拒绝的ip
           allow 172.18.5.54; #允许的ip           
        } 
    }
}

Guess you like

Origin blog.csdn.net/qq_26408545/article/details/133685624