最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 本地通过nginx配置反向代理

    正文概述 掘金(胡九筒)   2021-01-21   569

    Nginx是一款轻量级的HTTP服务器,采用事件驱动的异步非阻塞处理方式框架,这让其具有极好的IO性能。我们在日常开发中使用到Nginx的主要有以下几个场景:

    • Nginx作为http服务器

    • 跨域请求

    • 负载均衡

    • 网络资源的动静分离

    作为前端,我们主要是关注前两个场景

    一、下载安装

    点此下载 ,下载完成后解压,解压后文件如下:

    本地通过nginx配置反向代理

    解压(双击nginx.exe,双击后一个黑色的弹窗一闪而过)

    找到nginx解压目录下,鼠标右键,找到git bash打开,输入命令start ./nginx.exe回车即启动了nginx服务.

    本地通过nginx配置反向代理

    **检查是否启动成功:**直接在浏览器地址栏输入网址http://localhost,回车,出现以下页面说明启动成功

    本地通过nginx配置反向代理

    二、nginx配置

    找到nginx下的conf/nginx.conf文件,设置代理相关信息,重点是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 {
        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_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.com;
            # 这里是你要代理的测试环境域名加上-local
            # 比如你的项目测试环境为a.test.com,你本地此处可以设置为a-local.test.com,当然你可以随便设置
    
            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';
              # 此处8091是我们本地运行项目的端口号,设置成跟你本地起的服务端口号一样就行
              proxy_pass    http://127.0.0.1:8091/;
            }
        }
    }
    

    三、本机dns配置

    **修改本地host文件配置,**找到目录C:\Windows\System32\drivers\etc,打开hosts文件,修改文件,加入127.0.0.1 a-local.test.com

    本地通过nginx配置反向代理

    四、运行

    先输入./nginx.exe -t检查nginx配置是否正确,正确如下图:

    本地通过nginx配置反向代理

    继续输入nginx -s reload重启(nginx配置文件修改后都要重启nginx才会生效)

    刷新dns: ipconfig /flushdns

    本地通过nginx配置反向代理

    在浏览器中输入http://a-local.test.com, 你将会看到你本地运行的代码界面

    五、常用的nginx命令

    • 帮助命令:nginx -h

    • 启动Nginx服务器 :start nginx

    • 配置文件路径:/usr/local/nginx/conf/nginx.conf

    • 检查配置文件: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   http://a.test.com;
       }
    }
    

    起源地下载网 » 本地通过nginx配置反向代理

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元