静态网页
静态网页配置
配置一个静态的AdminLTE后台系统。 Free Bootstrap Admin Template - AdminLTE.IO
配置文件实例:
server {
listen 8000;
server_name localhost
location / {
root /home/AdminLTE-3.2.0;
index index.html index2.html index3.html;
}
}
虚拟主机server通过listen 和server_name 进行区分,如果有多个server配置,listen + server_name 不能重复。
listen
监听可以配置成IP 或着端口 或者IP+端口
eg:
listen 127.0.0.1:8000;
listen 127.0.0.1;(默认为80端口)
listen 8000;
listen *:8000;
listen localhost:8000;
server_name
server_name 主要用于区分,可以随便起名字;
也可以使用变量 $hostname 配置成主机名;
或者配置成域名:www.example.com, example.com;
如果多个server的端口重复,那么根据 域名 或者主机名去匹配server_name进行选择。
eg:
curl http://localhost:80会访问/usr/share/nginx/html
curl http://nginx-dev:80会访问/home/AdminLTE-3.2.0
# curl http://localhost:80 会访问这个
server {
listen 80;
server_name localhost;
#access_log /var/log/nginx/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
# curl http://nginx-dev:80 会访问这个
server{
listen 80;
server_name nginx-dev;#主机名
location / {
root /home/AdminLTE-3.2.0;
index index.html index2.html index3.html;
}
}
location
/ 请求指向root目录
location 总是从 / 目录开始匹配,如果存在子目录,例如 /css ,会指向 /static/css
location /css {
root /static;
}
HTTP 反向代理
- 正向代理
在客户端代理转发请求称为正向代理。例如VPN。
- 反向代理
在服务器端代理转发请求称为反向代理。例如nginx
- 配置代理服务
启动ruoyi后台服务,端口为8088;
java -jar ruoyi-admin.jar
nginx配置
server {
listen 8001;
server_name ruoyi.localhost;
location / {
proxy_pass http://localhost:8088;
}
}
proxy_pass配置说明:
location /some/path/ {
proxy_pass http://localhost:8080;
}
- 如果
proxy-pass的地址只配置到端口,不包含/或其他路径,那么location将被追加到转发地址中 如上所示,访问http://localhost/some/path/page.html将被代理到http://localhost:8080/some/path/page.html
location /some/path/ {
proxy_pass http://localhost:8080/zh-cn/;
}
设置代理请求headers
用户可以重新定义或追加header信息传递给后端服务器。可以包含文本、变量及其组合。默认情况下,仅重定义两个字段:
proxy_set_header Host $proxy_host;
proxy_set_header Connection close;
由于使用反向代理之后,后端服务无法获取用户的真实IP,所以,一般反向代理都会设置以下header信息。
location /some/path/ {
#nginx的主机地址
proxy_set_header Host $http_host;
#用户端真实的IP,即客户端IP
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:8088;
}
常用变量的值:
$host:nginx主机IP,例如192.168.56.105
$http_host:nginx主机IP和端口,192.168.56.105:8001
$proxy_host:localhost:8088,proxy_pass里配置的主机名和端口
$remote_addr:用户的真实IP,即客户端IP。
非HTTP代理
如果要将请求传递到非 HTTP 代理服务器,可以使用下列指令:
- fastcgi_pass 将请求转发到FastCGI服务器(多用于PHP)
- scgi_pass 将请求转发到SCGI server服务器(多用于PHP)
- uwsgi_pass 将请求转发到uwsgi服务器(多用于python)
- memcached_pass 将请求转发到memcached服务器
参考文档: 3.HTTP反向代理 (yuque.com)