windows环境下nginx 本地反向代理和相关http常规配置

Nginx 简介

  • nginx是解决基于进程模型产生的C10k问题,请求时即使无状态连接如web服务都无法达到并发响应量级一万现状。2006年俄罗斯编写。全称为engine X,缩减合并称为nginx。 官方站点:http://nginx.org/。 2013年发出企业版Nginx Plus

常用功能

  1. 静态资源的web服务器;
  2. http协议的反向代理服务器;
  3. pop3, smpt,imap4等邮件协议的反向代理;
  4. 能缓存打开的文件(元数据:文件的描述符等等信息)
  5. 支持FastCGI(php-fpm), uWSGI(Python WebFramwork)等协议机制,实现代理后端应用程序交互
  6. 高度模块化(非DSO机制)

下载安装nginx

命令行启动、关闭、重启nginx

  • 启动: 可以直接在根目录下双击nginx.exe 或在此目录处的cmd下使用 start nginx 命令行启动nginx服务器
  • 关闭:nginx.exe -s stop(快速关闭)/nginx.exe -s quit(有效完整的关闭)
  • 重启:nginx.exe -s reload
  • 重新打开日志文件:nginx.exe -s reopen
    在有些的情况下执行nginx -s reload命令可能会发生如下错误
nginx: [error] OpenEvent("Global\ngx_reload_6252") failed (2: The system cannot find the file specified)

错误原因:nginx尚未启动导致,执行 start nginx 命令开启nginx

nginx: [emerg] unexpected "}" in F:\nginx\nginx-1.14.0/conf/nginx.conf:60

错误原因:在nginx.conf配置文件60行代码处末尾未加上 ;

简单的本地反向代理

修改conf目录下的nginx.conf文件,主要配置35行左右的server
1.修改本地的发布目录,具体路径对照着自己文件位置发布目录

location / { 
		root  F:/cd-app/dist; #修改为你的本地的发布目录
	 	index index.html index.htm;
}

2.添加反向代理地址反向代理地址

location /gov{
	 proxy_pass http://192.168.200.124/gov; #反向代理地址
 }

3.配置完成后启动nginx:运行nginx.exe文件或者控制台敲入start nginx 命令

4.如果之前已启动nginx,nginx重启命令:nginx.exe -s reload

http常规配置

想详细学习http常规配置可点击此处连接,具体总结择日补上

wiki、Confluence、JIRA平台相关介绍

wiki (多人协作的写作系统)

Wiki是一种在网络上开放且可供多人协同创作的超文本系统,由沃德·坎宁安于1995年首先开发,这种超文本系统支持面向社群的协作式写作,同时也包括一组支持这种写作。沃德·坎宁安将wiki定义为“一种允许一群用户用简单的描述来创建和连接一组网页的社会计算系统”。
Wiki站点可以有多人(甚至任何访问者)维护,每个人都可以发表自己的意见,或者对共同的主题进行扩展或者探讨。

简单的来说wiki是一个可以让所有人都能参与其中包括创建、编辑、查阅等具有共享、平等的特点
它与博客相比最大的特点在于博客更多的是展现个性化的一面,而wiki是展现共性化的一面。

Confluence

Confluence是一个专业的企业知识管理与协同软件,也可以用于构建企业wiki。使用简单,但它强大的编辑和站点管理特征能够帮助团队成员之间共享信息、文档协作、集体讨论,信息推送。
Confluence为团队提供一个协作环境。在这里,团队成员齐心协力,各擅其能,协同地编写文档和管理项目。从此打破不同团队、不同部门以及个人之间信息孤岛的僵局,Confluence真正实现了组织资源共享。

用Confluence构建企业wiki,真正达到项目人员之间的知识共享,共同探讨,集结众人的想法与智慧呈现最好的资源总结。
有关Confluence的常用基本操作点击此处进行了解

JIRA

JIRA是什么

JIRA 是目前比较流行的基于Java架构的管理系统,由于Atlassian公司对很多开源项目实行免费提供缺陷跟踪服务,因此在开源领域,其认知度比其他的产品要高得多,而且易用性也好一些。同时,开源则是其另一特色,在用户购买其软件的同时,也就将源代码也购置进来,方便做二次开发。JIRA功能全面,界面友好,安装简单,配置灵活,权限管理以及可扩展性方面都十分出色。

JIRA的主要功能

  • 问题追踪和管理:用它管理项目,跟踪任务、bug、需求,通过jira的邮件通知功能进行协作通知,在实际工作中使工作效率提高很多
  • 问题跟进情况的分析报告:可以随时了解问题和项目的进展情况
  • 项目类别管理功能:可以将相关的项目分组管理
  • 组件/模块负责人功能:可以将项目的不同组件/模块指派相应的负责人,来处理所负责的组件的Issues
  • 项目email地址功能:每个项目可以有不同的email(该项目的通知邮件从该地址发出)
  • 无限制的工作流:可以创建多个工作流为不同的项目使用
    对于技术人员而言JIRA是一个跟踪项目最新动态以及bug管理的软件平台
  1. jira分两种类型:
    开发任务类型,由开发负责人提,在提测前close,不指派给测试;【纯代码优化都有开发人员提task,不需要更新到问题池中,但需要更新到任务清单中,让测试知晓】BUG类型的jira统一由测试提,开发负责修复
  2. 开发的任务型jira、测试的BUG型jira 均以迭代任务清单为参照依据,任务清单必须详细(描述清楚 应用场景、功能要点、界面、交互、权限等,包含原型、高保真);
  3. 普通开发人员若发现问题(性能、交互、BUG等),开发人员不直接提jira,而是记录问题到每个迭代的wiki问题池(写明提出者、重要程度),并告知测试人员,测试人员定期巡查wiki,按优先、重要等级选择性提jira;
  4. 项目反馈的问题,由测试把关,确认需要修改后再clone,然后指给开发;海云发版后,clone的jira状态改为closed,项目反馈的原jira状态改为resolved,并指回给项目组,由项目组确认没问题后自行close;
  5. 提测之前:开发提交的代码必须有明确的依据,commit message必须详细,比如任务清单中的jira、sonar等,负责人必须严格审核代码;
  6. 提测之后:原则上,测试不提jira,开发不允许改代码,开发提交的每一行代码,必须附上jira编号、详细的commit message,负责人严格审核代码;
  7. 项目上的紧急需求,经过初步测试后,提供更新补丁给项目组,并建议项目组进行更详细的针对性测试;
  8. 项目上的非紧急需求,安排在后续的迭代中开发,不插队到当前迭代;

点击详细了解JIRA的细节功能
总之 wiki 与 Confluence 、JIRA有着密不可分相辅相成的联系当三者连在一起使用能极大的提高工作效率,提升代码质量。

git在多人开发时的个人分支管理

在多人开发下,代码库至少有一个主分支master,开发环境分支develop,分别的个人分支比如:name.dev 分支
当个人git clone xxx 从远程仓库克隆代码到本地时,
使用git branch 查看当前分支其实本地只有一个主分支master,现在,让每个人分别从远程分支拉两个分支。一个是develop,一个是代表自己的那个分支,例如小明,就拉xiaoming_dev,

git pull develop:develop;
git pull xiaoming_dev:xiaoming_dev
//这个命令的意思就是拉取远程的一个叫develop的分支,并在本地创建一个叫develop的分支和远程的分支匹配。

现在git branch 查看就有三个分支master、develop、 xiaoming_dev
这样一来使用git checkout xiaoming_dev 切换到小明的分支下可以任意的git add、git commit、git pull --rebase,git push 相关代码。但是对于develop分支一般开发人员只能pull 不能 push,因为任意的对开发环境分支进行推送代码容易冲突和混乱。所以对于管理人来说合并代码尤为重要

  • 首先管理员要git fetch origin xiaoming_dev
  • git checkout develop 切换到develop分支 git merge xiaomiing_dev 合并小明的分支有冲突解决冲突
  • 然后把本地develop push 到远程的develop.每完成一个功能就提交一次。不要累计代码。
  • 最后再对develop 的分支进行测试确认无误后才合并到主分支上
    相关细节查阅此处

使用git tag 注意事项

使用git tag 注意事项:

说明:该列用来备注迭代的依赖说明、基础环境变更等信息。

【前端Tag规则】

不带模块,只带时间,示例:V8.0_20171020。
打Tag时,大版本需要备注是什么模块迭代几发版,小版本需要备注修复Bug对应的jira编号,以及对应修复模块 。
如果同一天发版了多个小版本,命名规则:V8.0_日期_数字编号,示例:V8.0_20171020_1.......V8.0_20171020_2。

备注:因为之前写法和规范不明确,标准格式从2017.10.24开始。

【后端Tag规则】

Tag命名规则:V8.0.x.y,x是迭代号,y是bug修复版本

由于目前能操作cd-app文件人员比较多,创建的个人分支也增多,不方便管理,所以成都前端团队统一用cd前缀

统一更名为:cd-xxx_dev(譬如:cd-zheng.lu_dev)

Git管理
分支管理:
1.采编中心:develop-iip
2.绩效考核:develop-ipm
3.智能检索:develop-igs
4.运营中心:develop-ido(已废除,运营中心纳入采编一并管理,统一都提交到develop-iip)
5.开发联调环境:develop
6.测试环境:test
7.生产环境:master

git 相关配置

git config --global user.name "exanpleName" // 配置用户名称,最好是自己的名字git config --global user.email "example@qq.com" // 配置用户邮箱
git config --global credential.helper store // 记住账号密码(在工作中需要频繁的提交/拉取远程git仓库,每次都需要输入账号密码效率很低,在私人电脑上建议配置,考虑安全问题,切忌在公用电脑上配置)

git相关学习链接

https://learngitbranching.js.org

VScode 插件推荐

jsx标签自动补全设置

file-preferences-settings 增加
"emmet.includeLanguages": {
    "javascript": "javascriptreact"
}
"emmet.triggerExpansionOnTab": true
  • 格式化jsx 代码
    安装 beautiful 和 rc-beautiful 使用ctrl+b 或者 alt+shift+f 进行格式化
  • Easy less
    功能:保存Less文件时,自动将该Less文件编译为同名css文件;
    快捷键:Ctrl + S
  • Setting Sync 同步你的vs code设置
  • VScode-fileheader
    功能:为文件添加备注,保存时自动更新文件更新时间;
    默认快捷键:Ctrl + Alt + i
  • Autoprefixer 自动补全css属性对于不同浏览器内核的前缀
  • Regex Previewer 正则表达式实时调式工具
  • RegExp Preview and Editor 正则表达式的图形化预览和编辑插件
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐