1.Nginx主要有三个功能:
- 反向代理
- 负载均衡
- 动静分离
2.正向代理和反向代理:
正向代理: 正向代理是顺着请求的方向,比如我们在浏览器设置代理访问国外的网站,需要用户在客户端进行设置。
反向代理: 反向代理的代理服务器是为服务器服务的,无需用户进行设置,用户交互的都是代理的服务器,由代理服务器进行请求的转发。
3.Nginx反向代理
目标: nginx的默认端口是80,tomcat的默认端口是8080,我们访问80端口跳转的是tomcat的页面。(实现跨域)
①.安装nginx和tomcat并启动
安装tomcat后,进入bin目录,./startup.sh
,访问8080
端口
安装nginx后,nginx
,启动nginx.访问80
端口
可能出现的问题:
1.启动后端口被占
ps -ef | grep tomcat
查看被占的进程的pid,
kill -9 ${pid}
2.使用的是阿里云服务器,在服务器上输入curl localhost:8080
,能够看到页面,但是在本机通过ip:8080访问看不到页面.
原因是因为你云服务器的端口可能未开放,需要登录阿里云,配置安全组策略
② 配置Nginx反向代理
1.找到nginx.conf
文件(我的在/etc/nginx/下面)
配置文件主要由三部分组成:
- 全局块
- events块
- http块(http全局块+server)
2 .在配置文件中加上server配置
server{
listen 80; #监听的端口
server_name 101.132.172.64; #服务器的ip
location / { #访问转发的规则,/代表访问任何路径
root html;
proxy_pass http://127.0.0.1:8080; #转发跳转的路径
index index.html index.htm;
}
}
3 .修改完配置文件后先输入nginx -t
,检查配置文件是否有错误,再输入nginx -s reload
,重新加载nginx配置文件并重启.
通过这个设置我们就实现了访问ip:80
端口,出现的不是nginx的欢迎页面而是tomcat的欢迎页面了。
③Nginx常用指令
nginx -s quit 优雅停止nginx,有连接时会等连接请求完成再杀死worker进程
nginx -s reload 优雅重启,并重新载入配置文件nginx.conf
nginx -s reopen 重新打开日志文件,一般用于切割日志
nginx -v 查看版本
nginx -t 检查nginx的配置文件
nginx -h 查看帮助信息
nginx -v 详细版本信息,包括编译参数
nginx -c filename 指定配置文件
可能出现的问题:
请求转发没有问题,未进行任何修改,第二天请求转发失效,访问还是nginx欢迎界面,找了很久原因,不知道是什么原因,重启阿里云服务器reboot
又好了。