Nginx的安装配置最全最新

时间:2023-01-10 12:03:11


yum安装(最简单)

# 命令来一建安装,搞定
yum install -y nginx

通过yum安装的Nginx的配置文件可能位于/etc/nginx/nginx.conf。

1.安装编译环境所需依赖包

# linux版本的需要先进行源码编译,编译时需要gcc环境
yum install -y gcc-c++
# pcre是一个perl的库,包括perl兼容的正则表达式库。nginx的http模块会使用pcre解析正则表达式。
yum install -y pcre pcre-devel
# zlib提供了多种压缩和解压缩的方式,nginx使用zlib对http包进行gzip,所以依赖于zlib库
yum install -y zlib zlib-devel
# OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,nginx不
# 仅支持http协议,还支持https(即在ssl协议上传输http)
yum install -y openssl openssl-devel

2. 下载安装包

# 下载Nginx安装包
wget https://nginx.org/download/nginx-1.9.7.tar.gz
# 解压安装包至 /usr/local目录下
tar -zxvf nginx-1.19.7.tar.gz -C /home/lys

3. 编译安装文件

# 设置安装的目录
./configure --prefix=/home/lys/nginx

# 编译安装
cd /home/lys/nginx-1.9.7
make && make install

常用指令

启动

# 启动Nginx服务,使用nginx目录下的nginx命令启动(默认80)
/home/lys/nginx/sbin/nginx
# 检测nginx服务是否启动方式一
# 查看linux中关于nginx的进程
ps -ef |grep nginx
# 检测nginx服务是否启动方式二
netstat -anop | grep 80
# 关闭防火墙后,在浏览器中访问虚拟机ip
service firewalld stop

关闭

# 一、此方式相当于查到nginx的进程,直接杀掉,不友好
/home/lys/nginx/sbin/nginx -s stop
# 二、此方式允许Nginx服务器不再接受新的请求,并且把当前请求处理完成之后关闭服务
/home/lys/nginx/sbin/nginx -s quit

重启指令

# 一、先关闭再启动
/home/lys/nginx/sbin/nginx -s quit
/home/lys/nginx/sbin/nginx
# 二、重新加载配置文件
/home/lys/nginx/sbin/nginx -s reload

检测配置文件语法

# 一、 指定要检测的文件路径名称
/home/lys/nginx/sbin/nginx -t -c /home/lys/nginx/conf/nginx.conf
# 二、 默认文件可以参略
./nginx -t

语法常用配置

其中,一个server就相当于一个服务器,你可以配置多个server模块来虚拟多个服务器。listen表示该服务器监听哪个端口,默认是80端口。server_name表示匹配主机名,比如我的server_name是localhost,那么,当客户端通过域名localhost(前提是该域名已经正确解析到该服务器的IP地址)来访问的时候,就是匹配到这个服务器。如果客户端通过域名localhost:8080来访问的时候,就会匹配到下面那个服务器。如果你通过IP直接访问,会默认访问第一个服务器。

location就是匹配的路由,root是返回给客户端资源文件的根目录,它是相对nginx路径的,也可以指定绝对路径(比如:/usr/local/nginx/www)。index就是默认返回的文件名(比如index.html,index.php,index.asp等)。

location指令说明

该指令用于匹配URL

  • =用于不含正则表达式的uri前,要求请求字符串与uri严格匹配,如果匹配成功,就停止继续向下搜索并立即处理该请求
  • ~用于表示含uri的正则表达式,并且区分大小写
  • ~*用于包含uri的正则表达式,并且不区分大小写
  • ^~用于不含正则表达式的uri前,要求Nginx服务器找到表示uri和请求字符串匹配度最高的location之后,立即使用此location处理请求,而不再使用location块中的uri和请求字符串作比较

样例1

# 访问80端口时
server {
listen 80;
server_name localhost;

location / {
root html;
index index.html index.htm;
}

# 设置nacos
location ^~/api_nacos/ {
proxy_pass http://10.0.37.2:8849/;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-real-ip $remote_addr;
}
}

# 访问8080端口时
server {
listen 8080;
server_name localhost222;

location / {
root html;
index index.html index.htm;
}

# 设置nacos
location ^~/api_nacos/ {
proxy_pass http://10.0.37.2:8849/;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-real-ip $remote_addr;
}

# 设置web01
location ^~/api_web01/ {
proxy_pass http://10.0.39.21:8222/;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-real-ip $remote_addr;
}
# 设置web02
location ^~/api_web02/ {
proxy_pass http://10.0.39.22:8333/;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-real-ip $remote_addr;
}
}

配置负载均衡

增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的情况改为将请求分发到多个服务器上,将负载分发到不同的服务器,也就是我们所说的负载均衡