首页 > 系统相关 >谷粒商城Nginx代理网关

谷粒商城Nginx代理网关

时间:2023-02-26 13:32:29浏览次数:47  
标签:网关 log nginx Nginx html proxy conf gulimall 谷粒


首先需要在C:\Windows\System32\drivers\etc中的host文件下加入

192.168.56.10 gulimall.com

//192.168.56.10虚拟机的ip地址

 本机浏览器请求gulimall.com,通过配置hosts文件之后,那么当你在浏览器中输入gulimall.com的时候,相当于域名解析DNS服务解析得到ip 192.168.56.10,也就是并不是访问java服务,而是先去找nginx。浏览器搜索先在该文件下查找是否有匹配的玩意再进行跳转的。

nginx配置文件介绍

├── client_body_temp
├── conf #配置文件目录
│ ├── fastcgi.conf
│ ├── fastcgi.conf.default
│ ├── fastcgi_params
│ ├── fastcgi_params.default
│ ├── koi-utf
│ ├── koi-win
│ ├── mime.types
│ ├── mime.types.default
│ ├── nginx.conf #主配置文件
│ ├── nginx.conf.default
│ ├── scgi_params
│ ├── scgi_params.default
│ ├── uwsgi_params
│ ├── uwsgi_params.default
│ └── win-utf
├── fastcgi_temp
├── html #初始的静态页面存放目录
│ ├── 50x.html
│ └── index.html
├── logs #日志目录
│ ├── access.log
│ ├── error.log
│ └── nginx.pid
├── proxy_temp
├── sbin #启动目录
│ └── nginx
├── scgi_temp
└── uwsgi_temp
# 运行用户
user nobody;
#启动进程,通常设置成和cpu的数量相等
worker_processes 1;

#全局错误日志及PID文件及存放路径
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;

#pid logs/nginx.pid;

#工作模式及连接数上限
events {
#单个后台work process进程的最大并发链接数
worker_connections 1024;
}



#网页信息
http {
#设定mine类型,类型由mine。type文件定义
include mime.types;
default_type application/octet-stream;

#设定日志格式
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';

#日志文件存储路径/usr/local/...(nginx的安装目录)
#access_log logs/access.log main;
#sendfile 指令指定 nginx 是否调用 sendfile 函数(zero copy 方式)来输出文件,
#对于普通应用,必须设为 on,
#如果用来进行下载等应用磁盘IO重负载应用,可设置为 off,
#以平衡磁盘与网络I/O处理速度,降低系统的uptime.
sendfile on;
#tcp_nopush on;

#连接超时时间
#keepalive_timeout 0;
keepalive_timeout 65;

#开启gzip压缩 如果没有开启gzip,用户访问我们的时候就是以原图来访问。
gzip on;
#小于1K的文件不适合压缩,下限是1k
gzip_min_lenth 1k;
#缓存的内存空间--4个16进制数据流
gzip_buffers 4 16k;
#http版本
gzip_http_version 1.1
#开启判断客户端和浏览器是否支持gzip
gzip_vary on;
#设定虚拟主机配置
server {
#监听80端口
listen 80;
#定义使用 访问的网址
server_name localhost;
#设置字符编码
#charset koi8-r;
#设定本虚拟主机的访问日志
#access_log logs/host.access.log main;
#默认请求,优先级最低的配置
location / {
#定义服务器的默认网站根目录位置 这个root目录其实就是/usr/local目录
root html;
# 匹配任何请求,因为所有请求都是以"/"开始
# 但是更长字符匹配或者正则表达式匹配会优先匹配
#定义首页索引文件的名称
index index.html index.htm;
}

#配置Nginx缓存
location ~.*\.(jpg|png|gif)$ {
expires 30d; #缓存存放30天,然后自动清除
}
location ~.*\.(css|js)? $ {
expires 1h; #缓存存放1小时
}

#error_page 404 /404.html;

# redirect server error pages to the static page /50x.html
#定义错误页面
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}


# 对 “/” 启用反向代理,对上面的实例
location / {
proxy_pass http://127.0.0.1:3000; # 设置要代理的 uri,注意最后的 /。可以是 Unix 域套接字路径,也可以是正则表达式。
proxy_redirect off; # 设置后端服务器“Location”响应头和“Refresh”响应头的替换文本
proxy_set_header X-Real-IP $remote_addr; # 获取用户的真实 IP 地址
#后端的Web服务器可以通过 X-Forwarded-For 获取用户真实IP,多个 nginx 反代的情况下,例如 CDN。参见:http://gong1208.iteye.com/blog/1559835 和 http://bbs.linuxtone.org/thread-9050-1-1.html
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#以下是一些反向代理的配置,可选。
proxy_set_header Host $host; # 允许重新定义或者添加发往后端服务器的请求头。
client_max_body_size 10m; #允许客户端请求的最大单文件字节数
client_body_buffer_size 128k; #缓冲区代理缓冲用户端请求的最大字节数,
proxy_connect_timeout 90; #nginx跟后端服务器连接超时时间(代理连接超时)
proxy_send_timeout 90; #后端服务器数据回传时间(代理发送超时)
proxy_read_timeout 90; #连接成功后,后端服务器响应时间(代理接收超时)
proxy_buffer_size 4k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小
proxy_buffers 4 32k; #proxy_buffers缓冲区,网页平均在32k以下的设置
proxy_busy_buffers_size 64k; #高负荷下缓冲大小(proxy_buffers*2)
proxy_temp_file_write_size 64k;
#设定缓存文件夹大小,大于这个值,将从upstream服务器传
}

# 本地动静分离反向代理配置
# 所有 jsp 的页面均交由tomcat或resin处理
location ~ .(jsp|jspx|do)?$ {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8080;
}

# 所有静态文件由nginx直接读取不经过tomcat或resin
location ~ .*.(htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)${
root /data/www/ospring.pw/public;
expires 15d;
}
location ~ ^/(upload|html)/ {
root /data/www/ospring.pw/public/html;
expires 30d;
}

include vhosts//.conf; 分割配置文件,方便管理
}


#这里可以配置多台虚拟主机
# another virtual host using mix of IP-, name-, and port-based configuration
#配置虚拟机
#server {
# 配置监听端口,只要端口不同就是不同的虚拟主机
# listen 8000;
# listen somename:8080;
#配置访问域名
# server_name somename alias another.alias;

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


# HTTPS server
web服务器配置
#server {
# listen 443 ssl;
# server_name localhost;

# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;

# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m;

# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;

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

}

 修改nginx/conf/nginx.conf,将​​upstream​​映射到我们的网关服务

upstream gulimall{
# 88是网关
server 192.168.56.1:88;
}

修改nginx/conf/conf.d/gulimall.conf,接收到gulimall.com的访问后,如果是/,转交给指定的upstream 

location / {
proxy_pass http://gulimall;
proxy_set_header Host $host;
}

由于nginx的转发会丢失host头,造成网关不知道原host,所以我们添加头信息 

配置gateway为服务器,将域名为**.gulimall.com转发至商品服务。配置的时候注意 网关优先匹配的原则,所以要把这个配置放到后面 

- id: gulimall_host_route
uri: lb://gulimall-product
predicates:
- Host=**.gulimall.com

nginx.conf 

user  nginx;
worker_processes 1;

error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;


events {
worker_connections 1024;
}


http {
include /etc/nginx/mime.types;
default_type application/octet-stream;

log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';

access_log /var/log/nginx/access.log main;

sendfile on;
#tcp_nopush on;

keepalive_timeout 65;

include /etc/nginx/conf.d/*.conf; # 包含了哪些配置文件
}

conf.d/gulimall.conf 

server {
listen 80;
server_name gulimall.com *.gulimall.com;

location /static {
root /usr/share/nginx/html;
}

#charset koi8-r;
#access_log /var/log/nginx/log/host.access.log main;
location / {
proxy_pass http://gulimall;
proxy_set_header Host $host; #
}

upstream gulimall{
# 88是网关
server 192.168.56.1:88;
}
include /etc/nginx/conf.d/*.conf; # 包含了哪些配置文件
}

标签:网关,log,nginx,Nginx,html,proxy,conf,gulimall,谷粒
From: https://blog.51cto.com/u_15786786/6086413

相关文章

  • 谷粒学苑
    day01项目【项目介绍和MyBatisPlus入门】day02项目【环境搭建和讲师管理接口开发】day03项目【项目前端相关基础知识一】day04项目【项......
  • 4G功能的边缘计算网关如何应用于储能行业
    随着储能行业的发展和完善,边缘计算网关的应用越来越广泛。钡铼技术发布全新带4G功能的边缘计算网关可以实现远程监控、数据采集、数据分析、智能控制等功能,可以实时监测储能......
  • nginx代理mysql
    [[email protected]]#catmysql.confupstreammysql{server192.168.2.6:3306;}server{listen8083;proxy_passmysql;}[roo......
  • 编译nginx设置自动启动
    nginx设置自动启动第一步在/etc/rc.d/rc.local中添加nginx启动命令行:/usr/local/nginx/sbin/nginx第二步然后添加执行权限chmod+x/etc/rc.d/rc.local第三步重启......
  • Nginx 前后端动态路径访问配置
    部分场景下一台测试服务器上部署多个前后端应用,需要多次更改nginx配置文件,如何配置一个即可动态访问?这里记录一下nginx正则表达式方式配置动态路径目录​​场景说明​​​......
  • Nginx安装与核心配置
    Nginx安装与核心配置一、Nginx的编译与安装1、Nginx安装环境准备(1)Linux内核2.6及以上版本只有2.6之后才支持epool,在此之前使用select或pool多路复用的IO模型,无法解决......
  • 记录Nginx配置
    #ProxytotheAirsonicserverlocation/{proxy_set_headerX-Real-IP$remote_addr;proxy_set_headerX-Forwarded-For$proxy_add_x_forwarde......
  • nginx、http、tomcat虚拟主机格式
    httpd<virtualhost *:80>servername ​​www.a.com​​documentroot /var/www/html</virtualhost>nginxserver{listen 80;server_name ​​www.a.com;​​root html;i......
  • 谷粒学院day05笔记
    讲师管理前端开发首先,把后台管理系统登录改到本地(临时)后面添加权限框架springsecuritynetwork->login->requesturl->修改为本地localhostdev.env.js->B......
  • k8s-部署Nginx+Keepalived高可用负载均衡器
    本文章是 k8s二进制高可用集群部署 的分支。详细步骤请参考目录。Kubernetes集群高可用性包含以下两个层面的考虑:Etcd数据库的高可用性KubernetesMaster组件......