Ubuntu安装配置Nginx及基础用法

本文最后更新于 over 1 year ago,文中所描述的信息可能已发生改变。

安装Nginx

直接apt安装即可sudo apt install nginx

查看Nginx服务状态

bash
sudo systemctl enable nginx    # 开机自启
sudo systemctl status nginx    # 输出以下结果即为Nginx正常运行
 nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2023-04-20 20:08:51 CST; 2h 4min ago
       Docs: man:nginx(8)
    Process: 258455 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 258456 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 258457 (nginx)
      Tasks: 3 (limit: 1929)
     Memory: 3.7M
        CPU: 44ms
     CGroup: /system.slice/nginx.service
             ├─258457 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"

访问Nginx初始页

别忘记先关闭ufw防火墙,或者开通服务器的80端口 文中的$IP就是虚拟机的IP地址,在虚拟机中也就是127.0.0.1

在浏览器输入http://$IP/,若出现Welcome to nginx!即为成功运行Nginx。

Nginx文件结构

文中的操作系统使用的是Ubuntu,和CentOS没有很大区别。 以下内容为本人自己的总结(若有疏漏请指正)

Nginx分为站点目录和配置文件目录,其中:

  • 站点目录在/var/www
    • 其中html为默认文件夹,其中的index.nginx-debian.html为Nginx默认的站点目录
  • 配置文件目录在/etc/Nginx
    • 其中sites-available/中的default就是Nginx的默认配置文件,里面可以设置Nginx最重要的虚拟主机,重定向等功能
    • 以下是文件结构:
bash
root@HoronLeeFirstEcs:/etc/nginx# tree
.
├── conf.d
├── fastcgi.conf
├── fastcgi_params
├── koi-utf
├── koi-win
├── mime.types
├── modules-available
├── modules-enabled
   ├── 50-mod-http-geoip2.conf -> /usr/share/nginx/modules-available/mod-http-geoip2.conf
   └── 省略
├── nginx.conf
├── proxy_params
├── scgi_params
├── sites-available
   ├── '
│   └── default
├── sites-enabled
│   └── default -> /etc/nginx/sites-available/default
├── snippets
│   ├── fastcgi-php.conf
│   └── snakeoil.conf
├── uwsgi_params
└── win-ut

使用Nginx新建一个网页

  1. 进入站点站点目录cd /var/www
  2. 新建网页文件夹mkdir /var/www/test
  3. 新建网页文件并写入html内容vim test.html
vim
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>迫真测试网页</title>
    <title>表白初号机</title>
  </head>
</html>
  1. 保存退出后再进入站点配置文件目录cd /etc/Nginx/sites-available
  2. 编辑默认配置文件vim default
  3. 添加一个server字段
vim
server {
        listen 81;   # 这是监听端口
        listen [::]:81;  # 这是监听端口(IPv6)   

        server_name test;    # 服务器名字,随意

        root /var/www/test;  # 站点目录
        index index.html;    # 站点默认文件(即优先使用的网页文件)

        location / {         # 暂时不用深入了解,可以理解为是一个规则
                try_files $uri $uri/ =404;
        }
}
  1. 编辑好之后保存并退出(别忘记开通防火墙的81端口)
  2. 重启Nginx服务sudo systemctl restart
  3. 访问http://$IP:81,如果上一步没有报错,并且看到了新的网页,就说明建站成功了!

使用Nginx进行重定向

比如我需要在访问http://$IP:82的时候自动跳转到http://$IP:81 这个时候就需要用到Nginx的重定向 重定向有多种方法,这里采用upstream字段的方法

  1. 和之前一样编辑站点配置文件vim default
  2. 在整个文件的最前面添加以下字段:
vim
upstream test_servers {
        server 127.0.0.1:81 max_fails=5 fail_timeout=10s weight=10;
}
  1. 然后在下面新建一个虚拟服务器(和之前差不多)
vim
server {
        listen 82;
        location / {
            proxy_pass http://test_servers;
        }
}
  1. 这你可以理解为这个服务器由http://test_servers进行代理,监听的是81端口,但是最终显示的还是test_servers中所属权重(weight=)最高的网页内容
  2. 重启Nginx服务sudo systemctl restart
  3. 访问http://$IP:82,如果上一步没有报错,并且看到之前端口为81的网页了!

写在最后,其实upstream块是Nginx用来做负载均衡用的,这里只有一个后端服务器,所以无论如何都会只指向这个站点,起到了所谓的重定向,实际应用当中不可能这样操作,要不然你的老板可能让你第二天不要去上班了。

使用Nginx进行负载均衡

其实就是建立反向代理和upstream 比如我们想要访问test.com这个网页,但是我们想要将访问的实际请求分不到服务器集群中的两台机器上

  1. 和之前一样编辑站点配置文件vim default
  2. 在整个文件的最前面添加以下字段:
vim
upstream test_com {
        server 192.168.1.2:80 max_fails=5 fail_timeout=10s weight=10; # 这里的upstream字段中添加两个相同权重(weight)的服务器
        server 192.168.1.3:80 max_fails=5 fail_timeout=10s weight=10; # 就可以实现负载均衡,还能根据各个服务器的性能进行分配
}
  1. 然后在下面新建一个虚拟服务器(和之前差不多)
vim
server {
        listen 80;
        location / {
            proxy_pass http://test_com;
        }
}

使用Nginx运行PHP网页

应该写在别的文章里哦~

更新中…

使用PHP+Nginx搭建网页
初试Kubernetes笔记