从零搭设Nginx 服务器代理本地服务

283 阅读2分钟

前言

作为前端开发了解一些关于服务端的配置,愉悦自己的同时还能在开发过程中提高团队的效率,话不多说,开撸!

一. nginx安装

  1. 下载nginx, 选择下载Stable version也就是稳定版本;
  2. 安装到本地文件夹,我这里是安装到的E盘,依据个人喜好,这里不做过多赘述。

nginx安装位置

二. 启动nginx

进入到nginx文件夹内,打开终端输入执行命令

  1. 启动: start nginx;
  2. 重启: ./nginx -s reload;
  3. 强制关闭:./nginx -s stop;
  4. 丝滑关闭: ./nginx -s quit;

注意:这里如果用 gitbash 的终端执行重启命令就会出现 bash: nginx: command not found 的提示,在网上查了些资料,原因大致是由于 windows 系统执行了 Linux 命令,导致无法通过该命令找到对应的模块,如果用windows自带的终端就可以顺利执行重启命令

解决方案就是 用 ./nginx 的方式

gitbash:

nginx在gitbash错误提示

cmd 时:

windows执行重启命令

三. 启动成功及代理

配置代理
server {
		# 监听的端口
        listen       9595;
        # 访问的服务器地址
        server_name  127.0.0.1;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;
        
        # 默认访问
        location / {
            root   F:\\xxxx\xxx;;
            index  index.html index.htm;
        }
        
        # 二级项目代理
        location /pc {
            alias E:\\xxxx\xxx;
        }

        # 图片服务器打理
        location /file {
            alias C:\\xxx\Pictures;
        }

        #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;
        }
    }

项目展示:

h5 项目访问成功!

h5.png

代理图片展示:

pic.png

访问静态文件:

file.png

处理跨域问题

作为前端开发,项目初期遇到最多的问题可能就是跨域了,由于同源策略的关系,访问其他服务器时就会出现跨域,本文暂针对简单的跨域处理。

  1. 访问静态文件:比如 vue开发环境读取静态文件,可能由于端口不同涉及跨域问题,那么可以在server内添加允许跨域请求头信息
server {
    # *星号代表任意跨源请求都支持
    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  'token,DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,XRequested-With';
}
  1. 如果还做后端服务,api调用时跨域,可以参考在访问路径下添加跨域请求设置:
server {
    # 后端接口
    location /api/ {
            if ($request_method = 'OPTIONS') {
                add_header 'Access-Control-Allow-Origin' '*';
                add_header 'Access-Control-Allow_Credentials' 'false';
                add_header 'Access-Control-Allow-Headers' 'Authorization,Accept,Origin,DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range';
                add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS,PUT,DELETE,PATCH';
                add_header 'Access-Control-Max-Age' 1728000;
                add_header 'Content-Type' 'text/plain charset=UTF-8';
                add_header 'Content-Length' 0;
                return 204;
        }
        proxy_pass http://127.0.0.1:8080/;
    }
}

至此 windows 系统配置本地服务器及代理配置成功,同理可在服务器配置nginx相关代理.

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 4 天,点击查看活动详情