一、nginx描述
nginx是一个代理服务器,中间件
二、nginx正向代理、反向代理
![](https://img-blog.csdnimg.cn/7d23b92ab9f4408ea1ee5f459f013b6a.png)
![](https://img-blog.csdnimg.cn/bc6b8e1ac3cf4b0389e99ffeac3499a9.png)
三、使用原因
在维护老项目做融合时,需要将项目合并在同一项目中;因为使用了单点登录,融合的框架使用的是iframe,由于嵌入的链接地址不同源,导致iframe中登录跨域,cookie丢失。同IP不同端口是可以携带cookie的,因此决定使用nginx代理去完成。
四、相关代码解析
# 最外层,全局配置块,用于配置nginx运行中的相关操作
worker_processes 1; #进程数 1
# 配置影响nginx服务器或与用户的网络连接等相关信息
# 通常将安装包解压后此处可以不做任何修改
events {
worker_connections 1024; #最大连接数
}
#可以配置多个server,配置代理等相关信息。
http {
include mime.types; #扩展名
default_type application/octet-stream; #文件类型
sendfile on; #允许以sendfile方式传输文件 关闭为off
keepalive_timeout 65; # 连接超时
server {
listen 7777; #监听的端口号
# root otapp; #根目录
server_name 127.0.0.1; #监听的IP地址
location /otapp/ { #监听普通请求 此处可解决iframe跨域登录cookie丢失问题
proxy_hide_header X-Frame-Options;
add_header X-Frame-Options ALLOWALL;
proxy_pass http://127.0.0.1:8080/otapp/; #代理地址
}
location /otapp/websocket { #监听websocket 此处可解决websocket代理问题
proxy_pass http://127.0.0.1:8080/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
#有时代理后的页面会缺失js,css等静态资源文件,可使用正则的方法重新代理这些资源
#注:在使用正则时,代理的地址后面不可以加斜杠 / ,在编译配置文件时会报错,通常情况下只能使用ip+端口
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)?$ { #监听静态文件的加载 例如css。png
proxy_pass http://127.0.0.1:8080;
}
location ~.*\.(js|css)?$ {
expires 12h;
proxy_pass http://127.0.0.1:8080;
}
location /nginx {
proxy_pass http://127.0.0.1:5500/test.html;
}
}
#基本规则
#实际请求地址会将你请求的地址的ip端口替换为代理地址,一个拼接的原则
五、Nginx版本
可官网下载nginx1.16.1,下载完成后解压,在conf=>nginx.cof文件中更改相关配置
六、三个指令
- 启动nginx,找到nginx.exe文件位置,打开cmd,执行nginx.exe,保持光标闪烁
- 在同样的位置打开第二个cmd,执行配置文件编译,nginx -s -reload,显示没有报错,即为nginx启动完成。接下来每次修改配置,只需要重新编译配置文件即可。
- 关闭nginx服务 nginx -s stop