nginx的请求转发配置过程
更新时间:2024年12月11日 16:04:28 作者:C_XL0102
Nginx在Windows和Linux环境下的安装、启动、停止、配置和请求转发过程,配置文件语法检测、优雅关闭、热部署和日志文件重新打开,配置多个服务的请求转发规则,修改前端API地址,设置最大上传文件大小
Nginx的使用(windows环境) linux也和此类似
- 去官网下载nginx后解压
- 在当前目录打开cmd窗口输入nginx.exe 即可启动服务
- 若想停止当前服务 输入命令nginx.exe -s stop 快速关闭nginx服务。 (注意使用Ctrl+C或者直接关闭黑窗口是不能停止服务的 )
使用Nginx来完成请求的转发 负责分配请求的转发到的服务其他命令:
- nginx -s quit 优雅的关闭,优雅是指当一个请求被处理完成之后才被关闭。
- 配置语法检查:nginx -c ./conf/jason.conf -t 可进行配置文件的语法检测。
- nginx -v查看nginx的版本
- nginx -s reload 重新加载配置文件,nginx是支持热部署的,意思就是可以在不停止服务的情况下进行更新部署。
- nginx -s reopen 重新打开日志文件。
Nginx的概念
- 例如 一个项目有多个服务 1.基本业务的服务 2.文件上传服务(阿里云OSS)
- 前端的请求都统一请求nginx后再由nginx来判断请求转发到哪个服务
配置Nginx的请求转发过程
- 配置目录:nginx-1.12.0/conf/nginx.conf
- 修改nginx的配置文件 把nginx的启动服务端口改为81 避免端口冲突
- 配置nginx的请求转发规则(注意需要在http{}括号里面添加或者修改才有用 不是https)最好复制下面的模板来修改!!!
- 修改前端的api地址统一为nginx的地址
Nginx.conf 配置模板
如果需要做文件上传的功能 :
- 需要配置nginx的最大上传文件的大小设置
- 配置nginx上传文件大小,否则上传时会有 413 (Request Entity Too Large) 异常
- 打开nginx主配置文件nginx.conf,找到http{},添加 client_max_body_size 1024m;
#user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { 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"'; #access_log logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; server { listen 81; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { root html; index index.html index.htm; } #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; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # #location ~ \.php$ { # root html; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; # include fastcgi_params; #} # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} } #配置nginx的请求转发规则 server { listen 9001;#监听端口 server_name localhost;#主机 #请求地址url的匹配路径(匹配规则) 只要请求地址里面包含edu_service的就会转发到http://location:8001 location ~ /edu_service/ { proxy_pass http://localhost:8001; } #请求地址url的匹配路径(匹配规则) 只要请求地址里面包含eduoss的就会转发到http://location:8002 location ~ /eduoss/ { proxy_pass http://localhost:8002; } } # 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 # #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代理Vue项目出现Invalid Host header问题及解决
在使用Nginx的upstream对Vue项目进行负载均衡时,如果代理地址无法访问目标地址且页面报错InvalidHostheader(无效主机头),可能是由于Vue项目的主机检查配置导致的,解决方法是在Vue项目的webpack.dev.js文件中的devServer下添加disableHostCheck:true,跳过主机检查2024-12-12在Linux和Windows系统上安装Nginx服务器的教程
这篇文章主要介绍了在Linux和Windows系统上安装Nginx服务器的教程,Linux系统这里以CentOS为代表,需要的朋友可以参考下2015-08-08
最新评论