前言
Nginx虽不是第一次接触,但是使用较少,今天算是完整的安装了配置了一次,前段时间想写一写的《Nginx的安装与常用配置》,因突发状况没有写完,今天补充一下。
安装 nginx
nginx 安装比较方便,我安装的环境是拥有root权限的Ubuntu 20.04,安装只需要以下两个命令:
1 | apt update |
安装完默认启动,查询运行状态的命令 systemctl status nginx
1 | # systemctl status nginx |
要想测试的话通过浏览器访问 http://YOUR_IP
,通常会看到 “Welcome to nginx” 字样的界面,但这对于我是没用的,我的默认端口访问不了。
查找nginx安装和配置文件的位置
我的nginx安装在 /usr/sbin/nginx
目录,配置文件主目录在 /etc/nginx/nginx.conf
,找的方法比较简单就是用 which
命令
1 | # which nginx |
找配置文件时利用 nginx 检查配置文件的 -t
参数就可以了
1 | # nginx -t |
如果使用 which
命令找不到,可以利用 ps -ef | grep nginx
找到进程id,在利用 ll /proc/nginx_pid
来找到安装的位置。
修改配置文件
进入 /etc/nginx
目录,可以看到多个配置文件和目录
1 | # cd /etc/nginx/ |
其中 nginx.conf
是主配置文件,内容如下:
1 | user www-data; |
这个文件是默认的配置文件,我们可以先不管,先注意几点就行:
- 访问日志在
/var/log/nginx/access.log
- 错误日志在
/var/log/nginx/error.log
- 主配置文件包含了
/etc/nginx/conf.d/*.conf
这个目录下所有配置
所以我们在 /etc/nginx/conf.d/
目录下新建一个 project.conf
文件,编写如下内容:
1 | upstream login_entrance { |
配置文件的含义:
- 访问 8100 端口可以看到 nginx 欢迎页
- 将发送给4100端口的数据转发给4101和4102端口
- 将发送给6100端口的数据转发给6101和6102端口
重启nginx服务
重启可采用关闭服务器再开启的方式,也可以直接使用以下命令:
- systemctl restart nginx
- nginx -s reload
查看报错
当nginx启动不起来是可以通过 systemctl status nginx
命令查看,也可以直接查看 errorlog 文件,比如可能会看到如下内容:
1 | 2023/03/14 20:51:06 [emerg] 937503#937503: bind() to 0.0.0.0:4100 failed (98: Address already in use) |
一看就应该知道是端口4100被占用了。
负载均衡配置
负载均衡是nginx一个常见的应用,只需要在配置文件中加入一些参数即可:
轮询
这是默认的策略,把每个请求按次序逐一分配到不同可用的server,如果分配到的server不可用,则自动分配到下一个
1 | upstream good.cc { |
权重
weight默认值为1,值越大则代表被访问的几率越大,下面配置中4102端口的访问几率是4101的二倍
1 | upstream good.cc { |
最少连接
顾名思义就是把请求分配到连接数最少的server
1 | upstream good.cc { |
IP哈希
根据访问客户端ip的hash值分配,这样同一客户端的请求都会被分配到同一个server上,适合有状态的服务
1 | upstream good.cc { |
总结
- nginx 在 Ununtu 20.04 上安装非常简单,使用
apt install nginx
就行啦 - nginx 的默认主配置文件是
/etc/nginx/nginx.conf
会包含同级目录下conf.d/*.conf
所有配置 - nginx 服务可以用
systemctl status nginx
方式查看 - nginx 的重启方式
systemctl restart nginx
或nginx -s reload
- nginx 作为负载均衡服务器有轮询、权重、最少连接、ipHash等多种配置方式
- 我也是刚刚入门,关于使用方法和配置文件还有很多东西要学,后面慢慢总结吧
无善无恶心之体,有善有恶意之动,知善知恶是良知,为善去恶是格物,愣凑数啊~