Nginx是一个高性能的Http和反向代理服务器,处理高并发能力强,占用内存少 有以下3点作用

反向代理: 用户发请求给反向代理服务器,反向代理服务器发请求给真正的服务器,真正的服务器把数据返回给反向代理服务器,反向代理服务器再把数据返回给用户,代理的是服务端; 不使用反向代理,服务端的端口会暴露在客户端,用反向代理把真是地址隐藏起来保证安全性; 反向代理服务器接受请求,再用负载均衡将请求分布给多个服务器。能提高效率

负载均衡:将多个请求均匀的分布到多台服务器上,减轻每台服务器的压力,提高服务的吞吐量

动静分离:可以用作静态文件的缓存服务器,动态页面和静态页面分别由不同的服务器解析,提高访问速度

正向代理:用户发送请求到自己的代理服务器,自己的代理服务器发送请求到服务器,服务器将数据返回到自己的代理服务器,自己的代理服务器再将数据返回给用户,代理的是客户端,把用户隐藏起来

每次nginx.conf文件编辑后均需要执行 ./usr/local/nginx/sbin/nginx -s reload 进行nginx服务重启才可生效

启动nginx失败时现杀死对应进程 kill -9 xxxx,之后即可启动服务

在nginx启动时要配置相应模块,在解压文件中执行./configure时后面跟着对应模块。

1
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

nginx.conf文件说明

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
server {
listen 80 ssl; #监听端口,ssl为访问https时使用,http不用
server_name localhost; #访问域名或ip

#charset koi8-r;

#access_log logs/host.access.log main;

location /hello/ { #其中hello为xxx.xx/hello/
proxy_pass http://192.168.1.197:8000/; #跳转目标地址
#root html; #显示文件所处位置
#index index.html index.htm; #显示的文件
}
#ssl_certificate /usr/local/nginx/ssl/9080124_www.joytrip.vip.pem; #ssl证书配置
#ssl_certificate_key /usr/local/nginx/ssl/9080124_www.joytrip.vip.key; #ssl证书配置
location /wx/ {
proxy_pass https://www.joytrip.vip:30881/boy.png/;
}

端口访问前提时防火墙开放端口。firewall-cmd –list–all查看已开发端口

重写(rewrite)与重定向(return)区别:共同作用是通知客户端请求的资源位于其他位置。目标链接均会显示在浏览器地址框。return比rewrite更方便,可以设置返回状态码;rewrite更全面,可以使用正则表达式但仅有临时与永久两种状态。

Nginx重定向配置

  • 301永久重定向
  • 302临时重定向
1
2
3
4
5
6
server {
listen 80;
#多域名重定向
server_name joytrip.vip 4rg.cn;
return 302 https://$http_host$request_uri;
}

Nginx反向代理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 反向代理配置
upstream server_list{
# 这个是tomcat的访问路径
server localhost:9001;
server localhost:9002;
server localhost:9003;
}
server {
listen 30880;
server_name localhost;

location / {
proxy_pass http://server_list;
#反向代理一条链接时可选用下方方式跳转
#proxy_pass http://localhost:9001;
}

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

Nginx重写

1
2
3
4
5
6
7
server {
listen 80;
server_name localhost;
#rewrite ^ https://joytrip.vip/wx/boy.png;
rewrite ^ https://jytrp.com$request_uri;
}

Nginx重启命令

1
nginx -s reload