Linux 部署 Nginx
作者:mmseoamin日期:2023-12-21

文章目录

  • 一、Nginx 下载
  • 二、部署步骤
  • 三、演示修改 Nginx 配置,修改端口号
  • 四、使用 Nginx 转发访问后端服务
  • 五、Nginx 常用命令

    一、Nginx 下载

    从官网中下载 nginx 压缩包到本地(http://nginx.org/en/download.html)

    Linux 部署 Nginx,在这里插入图片描述,第1张

    二、部署步骤

    1. 在 /usr/local 目录下新建 nginx 文件夹
    [root@iZwz9cwntagbp2m20emj0qZ local]# mkdir nginx                     
    [root@iZwz9cwntagbp2m20emj0qZ local]# ls                              
    aegis  app  bin  etc  games  include  lib  lib64  libexec  nginx  sbin  share  src
    
    1. 将 nginx 压缩包使用 SFTP 上传到 Linux 系统的 /usr/local/nginx 目录下
    [root@iZwz9cwntagbp2m20emj0qZ nginx]# ls                              
    nginx-1.22.1.tar.gz  
    
    1. 解压 nginx-1.22.1.tar.gz
    [root@iZwz9cwntagbp2m20emj0qZ nginx]# tar -zxvf nginx-1.22.1.tar.gz   
    nginx-1.22.1/          
    nginx-1.22.1/auto/ 
    ......
    [root@iZwz9cwntagbp2m20emj0qZ nginx]# ls                              
    nginx-1.22.1  nginx-1.22.1.tar.gz
    
    1. 进入 nginx,找到 configure
    [root@iZwz9cwntagbp2m20emj0qZ /]# cd usr/local/nginx/nginx-1.22.1/                         
    [root@iZwz9cwntagbp2m20emj0qZ nginx-1.22.1]# ls                                            
    auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  Makefile  man  objs  README  src 
    
    1. 运行 configure,命令 ./configure
    [root@iZwz9cwntagbp2m20emj0qZ nginx-1.22.1]# ./configure
    

    ①如果报错执行yum -y install pcre-devel // 安装pore

    ②如果再次报错执行 yum -y install openssl openssl-devel //安装openssl

    1. 编译 nginx 文件
    [root@iZwz9cwntagbp2m20emj0qZ nginx-1.22.1]# make
    [root@iZwz9cwntagbp2m20emj0qZ nginx-1.22.1]# make install
    
    1. 检查是否安装成功
    [root@iZwz9cwntagbp2m20emj0qZ nginx-1.22.1]# whereis nginx                                 
    nginx: /usr/local/nginx
    
    1. 找到 ngingx 的 sbin 目录
    [root@iZwz9cwntagbp2m20emj0qZ /]# cd usr/local/nginx/                                      
    [root@iZwz9cwntagbp2m20emj0qZ nginx]# ll    
    total 1092                                  
    drwx------ 2 nobody root    4096 Mar 14 11:39 client_body_temp                             
    drwxr-xr-x 2 root   root    4096 Mar 14 14:31 conf                                         
    drwx------ 2 nobody root    4096 Mar 14 11:39 fastcgi_temp                                 
    drwxr-xr-x 2 root   root    4096 Mar 14 11:37 html                                         
    drwxr-xr-x 2 root   root    4096 Mar 14 14:37 logs                                         
    drwxr-xr-x 9   1001 1001    4096 Mar 14 11:33 nginx-1.22.1                                 
    -rw-r--r-- 1 root   root 1073948 Mar 14 11:19 nginx-1.22.1.tar.gz                          
    drwx------ 2 nobody root    4096 Mar 14 11:39 proxy_temp                                   
    drwxr-xr-x 2 root   root    4096 Mar 14 11:37 sbin                                         
    drwx------ 2 nobody root    4096 Mar 14 11:39 scgi_temp                                    
    drwx------ 2 nobody root    4096 Mar 14 11:39 uwsgi_temp
    [root@iZwz9cwntagbp2m20emj0qZ nginx]# cd sbin/
    
    1. 启动 nginx
    [root@iZwz9cwntagbp2m20emj0qZ sbin]# ./nginx
    
    1. 访问测试

      Linux 部署 Nginx,在这里插入图片描述,第2张

    三、演示修改 Nginx 配置,修改端口号

    1. 找到 /conf 目录下的 nginx.conf 配置文件
    [root@iZwz9cwntagbp2m20emj0qZ /]# cd usr/local/nginx/nginx-1.22.1/conf/                    
    [root@iZwz9cwntagbp2m20emj0qZ conf]# ll     
    total 40                                    
    -rw-r--r-- 1 1001 1001 1077 Oct 19 16:02 fastcgi.conf                                      
    -rw-r--r-- 1 1001 1001 1007 Oct 19 16:02 fastcgi_params                                    
    -rw-r--r-- 1 1001 1001 2837 Oct 19 16:02 koi-utf                                           
    -rw-r--r-- 1 1001 1001 2223 Oct 19 16:02 koi-win                                           
    -rw-r--r-- 1 1001 1001 5349 Oct 19 16:02 mime.types                                        
    -rw-r--r-- 1 1001 1001 2656 Oct 19 16:02 nginx.conf                                        
    -rw-r--r-- 1 1001 1001  636 Oct 19 16:02 scgi_params                                       
    -rw-r--r-- 1 1001 1001  664 Oct 19 16:02 uwsgi_params                                      
    -rw-r--r-- 1 1001 1001 3610 Oct 19 16:02 win-utf 
    
    1. 使用 vim 编辑 nginx.conf 文件
    [root@iZwz9cwntagbp2m20emj0qZ conf]# vim nginx.conf
    

    修改监听端口为666

    server {                                
            listen       666;                    
            server_name  localhost;
    }        
    

    保存并退出:esc -> shift + : -> wq

    3. 重新加载 nginx.conf 配置文件

    [root@iZwz9cwntagbp2m20emj0qZ /]# cd usr/local/nginx/sbin/                                 
    [root@iZwz9cwntagbp2m20emj0qZ sbin]# ll     
    total 3804                                  
    -rwxr-xr-x 1 root root 3892016 Mar 14 11:37 nginx                                          
    [root@iZwz9cwntagbp2m20emj0qZ sbin]# ./nginx -s reload
    
    1. 测试端口修改是否成功

      Linux 部署 Nginx,在这里插入图片描述,第3张

    四、使用 Nginx 转发访问后端服务

    1. 启动 spring boot 项目
    [root@iZwz9cwntagbp2m20emj0qZ /]# cd usr/local/app/                                           
    [root@iZwz9cwntagbp2m20emj0qZ app]# ll         
    total 16160                                    
    -rw-r--r-- 1 root root 16546230 Mar 14 14:23 springboot-0.0.1-SNAPSHOT.jar                    
    [root@iZwz9cwntagbp2m20emj0qZ app]# java -jar springboot-0.0.1-SNAPSHOT.jar                   
      .   ____          _            __ _ _        
     /\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \       
    ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \      
     \/  ___)| |_)| | | | | || (_| |  ) ) ) )     
      '  |____| .__|_| |_|_| |_\__, | / / / /      
     =========|_|==============|___/=/_/_/_/       
     :: Spring Boot ::        (v2.3.6.RELEASE)     
    2023-03-14 20:05:22.440  INFO 30885 --- [           main] c.json.springboot.SpringbootApplication  : Starting SpringbootApplication v0.0.1-SNAPSHOT on iZwz9cwntagbp2m20emj0qZ with PID 30885 (/usr/local/app/springboot-0.0.1-SNAPSHOT.jar
     started by root in /usr/local/app)            
    2023-03-14 20:05:22.454  INFO 30885 --- [           main] c.json.springboot.SpringbootApplication  : No active profile set, falling back to default profiles: default                       
    2023-03-14 20:05:24.718  INFO 30885 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 666 (http)                                            
    2023-03-14 20:05:24.747  INFO 30885 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]               
    2023-03-14 20:05:24.748  INFO 30885 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.39]                                        
    2023-03-14 20:05:24.891  INFO 30885 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/json]   : Initializing Spring embedded WebApplicationContext                                     
    2023-03-14 20:05:24.892  INFO 30885 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 2320 ms                        
    2023-03-14 20:05:25.793  INFO 30885 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'applicationTaskExecutor'                                 
    2023-03-14 20:05:26.188  INFO 30885 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 666 (http) with context path '/json'                        
    2023-03-14 20:05:26.219  INFO 30885 --- [           main] c.json.springboot.SpringbootApplication  : Started SpringbootApplication in 4.683 seconds (JVM running for 5.522)                 
    2023-03-14 20:06:06.170  INFO 30885 --- [-nio-666-exec-4] o.a.c.c.C.[Tomcat].[localhost].[/json]   : Initializing Spring DispatcherServlet 'dispatcherServlet'                              
    2023-03-14 20:06:06.170  INFO 30885 --- [-nio-666-exec-4] o.s.web.servlet.DispatcherServlet        : Initializing Servlet 'dispatcherServlet'
    2023-03-14 20:06:06.187  INFO 30885 --- [-nio-666-exec-4] o.s.web.servlet.DispatcherServlet        : Completed initialization in 17 ms
    
    1. 在浏览器中测试访问接口

      Linux 部署 Nginx,在这里插入图片描述,第4张

    2. 在 nginx.conf 文件中配置 location

    [root@iZwz9cwntagbp2m20emj0qZ ~]# cd /         
    [root@iZwz9cwntagbp2m20emj0qZ /]# cd usr/local/nginx/nginx-1.22.1/conf/                       
    [root@iZwz9cwntagbp2m20emj0qZ conf]# vim nginx.conf
    server {                                   
        listen       80;                       
        server_name  localhost;      
        
        location /json/ {                      
            proxy_pass http://112.74.190.252:666/json/;                                       
        }
    }
    
    1. 重新加载 nginx.conf 配置文件
    [root@iZwz9cwntagbp2m20emj0qZ /]# cd usr/local/nginx/sbin/                                    
    [root@iZwz9cwntagbp2m20emj0qZ sbin]# ll        
    total 3804                                     
    -rwxr-xr-x 1 root root 3892016 Mar 14 11:37 nginx                                             
    [root@iZwz9cwntagbp2m20emj0qZ sbin]# ./nginx -s reload
    
    1. 浏览器中测试(使用 Nginx 监听的 80 端口访问)

      Linux 部署 Nginx,在这里插入图片描述,第5张

    五、Nginx 常用命令

    1. 查看 nginx 位置
    [root@iZwz9cwntagbp2m20emj0qZ /]# whereis nginx                                            
    nginx: /usr/local/nginx
    
    1. 启动 nginx
    [root@iZwz9cwntagbp2m20emj0qZ /]# cd usr/local/nginx/sbin/                                 
    [root@iZwz9cwntagbp2m20emj0qZ sbin]# ./nginx
    
    1. 停止 nginx
    [root@iZwz9cwntagbp2m20emj0qZ /]# cd usr/local/nginx/sbin/                                 
    [root@iZwz9cwntagbp2m20emj0qZ sbin]# ./nginx -s stop
    
    1. 安全退出 nginx
    [root@iZwz9cwntagbp2m20emj0qZ /]# cd usr/local/nginx/sbin/                                 
    [root@iZwz9cwntagbp2m20emj0qZ sbin]# ./nginx -s quit  
    
    1. 重新加载配置文件
    [root@iZwz9cwntagbp2m20emj0qZ /]# cd usr/local/nginx/sbin/                                 
    [root@iZwz9cwntagbp2m20emj0qZ sbin]# ./nginx -s reload 
    

    (注意:Nginx 启动、停止、退出、重新加载命令都需要在 sbin 目录下执行)

    1. 查看 nginx 进程
    [root@iZwz9cwntagbp2m20emj0qZ /]# cd usr/local/nginx/sbin/                                 
    [root@iZwz9cwntagbp2m20emj0qZ sbin]# ./nginx
    [root@iZwz9cwntagbp2m20emj0qZ sbin]# ps aux|grep nginx                                     
    root     30537  0.0  0.0  20576   624 ?        Ss   16:41   0:00 nginx: master process ./nginx                                            
    nobody   30538  0.0  0.0  21020  1320 ?        S    16:41   0:00 nginx: worker process     
    root     30542  0.0  0.0 112812   980 pts/0    S+   16:41   0:00 grep --color=auto nginx