本地通过nginx配置反向代理的全过程记录
前⾔
Nginx是⼀款轻量级的HTTP服务器,采⽤事件驱动的异步⾮阻塞处理⽅式框架,这让其具有极好的IO性能。我们在⽇常开发中使⽤到Nginx的主要有以下⼏个场景:Nginx作为http服务器
跨域请求
负载均衡
⽹络资源的动静分离
作为前端,我们主要是关注前两个场景
⼀、下载安装
,下载完成后解压,解压后⽂件如下:
解压(双击,双击后⼀个⿊⾊的弹窗⼀闪⽽过)
到nginx解压⽬录下,⿏标右键,到git bash打开,输⼊命令start ./回车即启动了nginx服务.
⼆、nginx配置
到nginx下的f⽂件,设置代理相关信息,重点是server{}中的内容
#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 {
pes;
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_names_hash_bucket_size 128;
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 80;
server_name test-local.juejin;
# 这⾥是你要代理的测试环境域名加上-local
# ⽐如你的项⽬测试环境为a.test,你本地此处可以设置为st,当然你可以随便设置
location /{
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,web-token,app-token,Authorization,Accept,Origin,Keep-Alive,User-Agent,X-Mx-ReqToken,X-Data-Type,X-Auth-Token,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';  add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
nginx部署前端项目# 此处8091是我们本地运⾏项⽬的端⼝号,设置成跟你本地起的服务端⼝号⼀样就⾏
proxy_pass 127.0.0.1:8091/;
}
}
}
三、本机dns配置
**修改本地host⽂件配置,**到⽬录C:\Windows\System32\drivers\etc,打开hosts⽂件,修改⽂件,加⼊127.0.0.st
四、运⾏
先输⼊./ -t检查nginx配置是否正确,正确如下图:
继续输⼊nginx -s reload重启(nginx配置⽂件修改后都要重启nginx才会⽣效)
刷新dns: ipconfig /flushdns
五、常⽤的nginx命令
帮助命令:nginx -h
启动Nginx服务器:start nginx
配置⽂件路径:/usr/local/nginx/f
检查配置⽂件:nginx -t
停⽌服务:nginx -s stop
退出服务(处理完所有请求后再停⽌服务):nginx -s quit
重新加载配置⽂件:nginx -s reload
显⽰版本信息并退出  nginx -v
杀死所有nginx进程  killall nginx
六、跨域请求
前后端分离的项⽬中由于前后端项⽬分别部署到不同的服务器上,我们⾸先遇到的问题就是跨域,在这个场景我们下nginx可以帮助我们很好地解决这个问题
#跨域请求server
server{
listen 9000;
server_name 127.0.0.1; # 或者设置为本机ip
root /app/crossDomain/;
index index.html;
location /douban/ { #添加访问⽬录为/api的代理配置
rewrite ^/api/(.*)$ /$1 break;
proxy_pass a.test;
}
}
总结
到此这篇关于本地通过nginx配置反向代理的⽂章就介绍到这了,更多相关本地通过nginx配置反向代理内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。