Server 4 ,在 Ubuntu 系统中,通过命令安装 Nginx 的详细指南(在乌班图系统中,通过命令安装 Nginx,在 Ubuntu 20.04系统中,通过命令安装 Nginx 的详细指南)

目录

前言
一. 更新软件包列表
二. 安装Nginx
安装最新版本的Nginx
安装指定版本的Nginx
三. 验证安装
四. Nginx的路径位置
五. 管理Nginx服务
查看Nginx状态
停止Nginx
启动Nginx
重启Nginx
六. 流程简述
七. 配置文件
八. 本文总结
九. 更多操作

d8ec2774f3b44e5ab9f88d9f3aad18ea.gif

前言

我们都知道Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。它以其高并发处理能力、低内存消耗和模块化设计而闻名。这里将详细介绍如何在Ubuntu 20.04中通过apt包管理器安装Nginx,并提供一个示例配置文件,帮助你快速上手。

8bfdf02856864c97a9651eaa341a048c.webp

一. 更新软件包列表

在安装任何软件之前,建议先更新系统的软件包列表,以确保获取到最新的软件包信息。

sudo apt update

注意事项

  1. 确保你的系统已经连接到互联网。

  2. 如果你使用的是代理服务器,请确保代理配置正确。


二. 安装Nginx

安装最新版本的Nginx

要安装最新版本的Nginx,可以使用以下命令:

sudo apt install nginx

安装指定版本的Nginx

如果你想安装特定版本的Nginx,可以先查看可用的版本:

sudo apt-cache show nginx

然后,使用以下命令安装指定版本:

sudo apt install nginx=<version>

注意事项

  1. 安装指定版本时,请确保版本号正确,否则可能会导致安装失败。

  2. 如果你不确定要安装哪个版本,建议安装最新版本。


三. 验证安装

安装完成后,可以通过以下命令查看Nginx的版本,以确认安装成功:

nginx -v


四. Nginx的路径位置

安装完成后,Nginx的相关文件和目录位置如下:

  • 日志文件:/var/log/nginx

  • HTML文件:/var/www/html

  • 配置文件:/etc/nginx

注意事项

  1. 日志文件通常包括access.logerror.log,分别记录访问日志和错误日志。

  2. 默认的HTML文件位于/var/www/html,你可以根据需要修改或替换这些文件。

  3. 配置文件位于/etc/nginx目录下,包括主配置文件nginx.conf和站点配置文件。


五. 管理Nginx服务

查看Nginx状态

要查看Nginx的运行状态,可以使用以下命令:

systemctl status nginx

停止Nginx

要停止Nginx服务,可以使用以下命令:

sudo systemctl stop nginx

启动Nginx

要启动Nginx服务,可以使用以下命令:

sudo systemctl start nginx

重启Nginx

要重启Nginx服务,可以使用以下命令:

sudo systemctl restart nginx

注意事项

  1. 在修改Nginx配置文件后,通常需要重启Nginx服务以使更改生效。

  2. 如果你只是进行了一些小的配置更改,可以使用sudo systemctl reload nginx来重新加载配置,而不中断服务。


六. 流程简述

整体的安装流程简述:

1. 更新软件包列表:sudo apt update

2. 安装最新版本的nginx:sudo apt install nginx

3. 或者安装指定版本的nginx,查看可安装的版本:sudo apt-cache show nginx

4. 安装指定版本:sudo apt install nginx=<version>

5. 安装完后查看安装的版本:nginx -v

6. 文件位置:log: /var/log/nginx        html:/var/www/html        conf:/etc/nginx

7. 启动nginx:sudo systemctl start nginx

8. 查看nginx状态:systemctl status nginx

9. 停止nginx:sudo systemctl stop nginx

10. 重启nginx:sudo systemctl restart nginx

安装完成后,通过 localhost 访问,或者本地 IP 访问。如需连接后端数据,需要将配置文件改为后端端口。


七. 配置文件

以下是一个 Nginx 服务中的 nginx.conf 配置文件示例,展示了如何配置多个虚拟主机、反向代理和基本认证。

# 定义Nginx运行的用户和worker进程数
user www-data;
worker_processes auto;

# 事件模块配置
events {
    worker_connections 1024;
}

# HTTP模块配置
http {
    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    # 定义日志格式
    log_format main '$remote_addr - $remote_user [$time_local] "$request" '
                    '$status $body_bytes_sent "$http_referer" '
                    '"$http_user_agent" "$http_x_forwarded_for"';

    # 定义访问日志路径和格式
    access_log /var/log/nginx/access.log main;

    # 启用高效文件传输模式
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;

    # 包含其他配置文件
    include /etc/nginx/conf.d/*.conf;

    # 定义上游服务器
    upstream backend {
        server 127.0.0.1:8080;
    }

    # 定义第一个虚拟主机
    server {
        listen 80;
        server_name example.com www.example.com;
        # 这里对应打包文件的存放路径
        root /usr/share/nginx/example;

        # 处理根路径请求
        location / {
            try_files $uri $uri/ /index.html;
        }

        # 处理API请求,反向代理到后端服务器
        location /api/ {
            proxy_pass http://backend;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }

        # 禁止访问.htaccess文件
        location ~ /\.ht {
            deny all;
        }
    }

    # 定义第二个虚拟主机
    server {
        listen 80;
        server_name test.com www.test.com;
        root /usr/share/nginx/test;

        # 处理根路径请求
        location / {
            try_files $uri $uri/ =404;
        }

        # 对/secure/路径启用基本认证
        location /secure/ {
            auth_basic "Restricted";
            auth_basic_user_file /etc/nginx/.htpasswd;
        }
    }
}

注意事项

  1. 在配置文件中,server_name应替换为你的实际域名。

  2. root指令指定了站点的根目录,确保该目录存在并且有正确的权限。

  3. 使用以下命令放开指定文件夹权限,确保 Nginx 可以访问相关文件:

    sudo chmod -R 777 /var/www/html/*

    该命令会递归地赋予 /var/www/html 目录下的所有文件完全权限(读、写、执行),但请注意,这种操作可能会带来安全风险,建议在生产环境中谨慎使用。

  4. location块用于定义不同URL路径的处理方式,你可以根据需要添加或修改。

  5. 反向代理配置中,proxy_pass指令指定了后端服务器的地址。

  6. 基本认证配置中,auth_basic_user_file指定了包含用户名和密码的文件路径,你可以使用htpasswd工具生成该文件。

实际配置后的代码图片:

5c3a3d86f55c49eebb14748c40764a9e.png

真实项目(ZHGK、DMX)部署参考:


#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;
    
    server {
        listen       7070;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html/Zhgk_System;
            index  index.html index.htm;
            try_files $uri $uri/ /index.html;
        }

        #error_page  404              /404.html;


        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
        
                
        location ^~/prod-api/{
            proxy_pass http://localhost:9011/;
        }
        
        
        location ^~/dt-api/ {

	set $backend_ip $http_x_device_ip;

          # 检查请求头是否为空
          if ($backend_ip = "") {
              set $backend_ip "192.168.110.41:9011";  # 默认 IP 地址
          }

          # 使用 IP 地址代理请求
          proxy_pass http://$backend_ip/getconfigs;

          access_log /usr/local/nginx/logs/access.log;
          add_header X-Backend-IP $backend_ip;

          proxy_set_header Host $host;
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          proxy_set_header X-Forwarded-Proto $scheme;
          proxy_set_header X-Device-Ip $http_x_device_ip;
	}

    }

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html/Jt_dmx;
            index  index.html index.htm;
            try_files $uri $uri/ /index.html;
        }
        
        location ^~/api/{
            proxy_pass http://localhost:9012/;
        }
        #error_page  404              /404.html;


        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
        
        proxy_buffering off;
    }

}


八. 本文总结

这里详细介绍了在 Ubuntu 20.04 中通过 apt 安装和配置 Nginx 的完整流程。从更新软件包列表、安装 Nginx 到管理服务(启动、停止、重启),再到关键路径(日志、HTML 文件、配置文件)的说明,帮助我们快速上手。我们还提供了一个示例配置文件,展示了虚拟主机、反向代理和基本认证的配置方法。通过本文,我们可以掌握 Nginx 的基本安装、配置和管理技能,为后续的深入使用打下基础。如果有任何问题,欢迎随时交流!😊

参考文献:fruge365icon-default.png?t=O83Ahttps://blog.youkuaiyun.com/qq_46123200/article/details/140876995?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522a1b0da0a9885083df76136d871dada78%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=a1b0da0a9885083df76136d871dada78&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-3-140876995-null-null.nonecase&utm_term=nginx&spm=1018.2226.3001.4450


九. 更多操作

Nginx系列,请看

Nginxicon-default.png?t=O83Ahttps://blog.youkuaiyun.com/weixin_65793170/category_12128287.html

7366413eb540471598f1710acb138e93.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北城笑笑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值