简介
第一步:匹配路径:正则匹配
第二步:映射转发:改IP:Port
若window配置使用nginx后,则启动项目就要同时启动nginx才行,否则无法使用对应的nginx配置的请求转发等服务
nginx配置请求转发
DEBUG
80端口已占用报错如下:
nginx: [emerg] bind() to 0.0.0.0:80 failed (10013: An attempt was made to access a socket in a way forbidden by its access permissions)
注意要改一下启动nginx的默认端口,否则启动nginx时可能会出错,因为默认端口极有可能已被占用。(80端口号太靠前容易被占用可以使用四位端口号)
端口的取值范围是:0-65535
端口号的分类
(1)公认端口(Well Known Ports):从0到1023,它们紧密绑定(binding)于一些服务。通常这些端口的通讯明确表明了某种服务的协议。例如:80端口实际上总是HTTP通讯。(2)注册端口(Registered Ports):从1024到49151。它们松散地绑定于一些服务。也就是说有许多服务绑定于这些端口,这些端口同样用于许多其它目的。例如:许多系统处理动态端口从1024左右开始。
(3)动态和/或私有端口(Dynamic and/or Private Ports):从49152到65535。理论上,不应为服务分配这些端口。实际上,机器通常从1024起分配动态端口。但也有例外:SUN的RPC端口从32768开始。
在nginx对应安装目录上方搜索框使用cmd命令行启动nginx.exe才能查看是否可用
nginx转发请求时对转发的http数据包大小限制(POST,文件上传)
运行原理
首先是配置所有前端中微服务的基本访问路径(BaseURL)为nginx监听端口地址:http://localhost:9001/~,然后再配置映射具体微服务的访问路径
- 先是配置nginx的监听路径和端口:http://localhost:9001
- 然后再配置其映射(正则表达式)和转发的访问路径和端口
http://localhost:9001/~/eduservice/
的url会被映射为http://localhost:8001/~/eduservice/
相当于将请求中的http://localhost:9001换为http://localhost:8001 - 同样经过nginx配置转发的不仅仅是url还有http包中的数据,所以注意配置nginx的大小设置。
注意:上述nginx的启动端口号(81)和nginx的监听端口号(9001)是不一样的,功能也是不同的。
server {
listen 81;
server_name localhost lcsf.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://lcsf.com;
proxy_redirect default;
}
server {
listen 9001;
server_name loaclhost;
location ~/eduservice/ {
proxy_pass http://localhost:8001;
}
location ~/eduoss/ {
proxy_pass http://localhost:8002;
}
}
}
注意:配置完nginx后需要在任务管理器中关闭全部nginx进程再重新启动才可以启动新配置(或者直接电脑重启)。
nginx命令行语句
nginx -s reopen #重启Nginx
nginx -s reload #重新加载Nginx配置文件,然后以优雅的方式重启Nginx
nginx -s stop #强制停止Nginx服务:常用
nginx -s quit #优雅地停止Nginx服务(即处理完所有请求后再停止服务)
nginx -t #检测配置文件是否有语法错误,然后退出
nginx -?,-h #打开帮助信息
nginx -v #显示版本信息并退出
nginx -V #显示版本和配置选项信息,然后退出
nginx -t #检测配置文件是否有语法错误,然后退出
nginx -T #检测配置文件是否有语法错误,转储并退出
nginx -q #在检测配置文件期间屏蔽非错误信息
nginx -p prefix #设置前缀路径(默认是:/usr/share/nginx/)
nginx -c filename #设置配置文件(默认是:/etc/nginx/nginx.conf)
nginx -g directives #设置配置文件外的全局指令
killall nginx #杀死所有nginx进程 ————————————————
版权声明:本文为CSDN博主「ruoxiyun」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ruoxiyun/article/details/86980913