为了账号安全,请及时绑定邮箱和手机立即绑定

Nginx配置统一开发环境

标签:
运维 Nginx

为什么要配置nginx统一开发环境?

一般公司里面的开发人员都是自己在自己电脑上安装开发环境,公司也不多做要求,但这会有一个问题:每个人安装的开发环境对应的软件版本可能都不一样,即使规定了用什么版本的软件开发,大家也不一定遵守,只要能跑起来就无所谓,这就导致有些功能提交测试环境的时候会有意想不到的问题,所以这个时候就需要统一开发环境,减少这种低级错误的发生。

实现目标

统一开发环境,让开发人员只需在本地电脑安装极少的必不可少的开发软件(如:vscode、git、数据库管理终端即可)即可快速进入开发,而不去关注一些服务类软件的安装(如:php、redis、mysql、mongo、nginx等)

思路

本地同步服务器项目,本地开发完自动同步到远程服务器;
可以理解为远程服务器只做一个功能预览,具体开发在本地,远程服务器的文件改动都是本地同步上去的,所以在服务器拉取代码的时候要把同步上去的代码给忽略掉;
本地和远程都需要更新代码;这样本地的代码是新的,远程服务器预览的功能也是新的。


配置步骤

  1. nginx配置
需要开发人员有linux基础!
首先,在linux上面创建带家目录的新用户;
然后,在/data/devhome里面给每个开发人员新建目录,然后在里面通过git拉取项目
![图片描述](//img1.sycdn.imooc.com//620a020f0001b3bc06320122.jpg)

最后,配置nginx:
server {
        listen       80;
		server_name api.student.com;
        server_name  ~^api-([a-z\d]+).student.com$;

        client_max_body_size 100m;
        concat on;
        concat_max_files 10;# 最大合并文件数
        concat_unique on;# 只允许同类型文件合并
		set $ismob 0;
		set $course course;
		set $devhome student;
		set $flag 0;

	if ($http_host ~* "api-([a-z\d]+).(student|review).com")  {
			#匹配每个人姓名:api-lidy.student.com,然后赋值给$devhome
        	set $devhome $1;
        }	
	
        #判断是否是移动端
	if ( $http_user_agent ~ "^((.*iPhone.*)|(.*Android.*))$" ) {
			set $ismob 1;
       	}

        access_log  /data/log/nginx/access.log main;                 
		error_log  /data/log/nginx/error.log;
		
		#重要是这里!!!
        root   /data/devhome/$devhome/项目一级目录/具体项目二级目录/api/webroot/;
        #在 /data/devhome/下面有 lidy目录,lidy下面有applist目录,applist目录下面有多个项目目录(aaa、bbb、ccc),注:lidy是开发人员姓名
        #例如:root   /data/devhome/lidy/applist/aaa/api/webroot/;

        index  index.php index.html index.htm;
		fastcgi_intercept_errors on;

        location / {
            if (!-e $request_filename) {
              rewrite ^/(.*\.(js|ico|gif|jpg|png|css|bmp|html|xls)$) /$1 last;
              rewrite ^/(\?\?.*\.(js|css).*$) /$1 last;
              rewrite ^/(.*)  /index.php?$1 last;
          }          

        }

        location ~ \.php$ {
            fastcgi_pass   127.0.0.1:9001;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            include        fastcgi.conf;
        }
        add_header x-Dev-User $devhome;
	
}

2、 本地配置(以vscode为例)

需要用到SFTP插件,用来同步开发环境的项目!!!
配置sftp.json:
{
    "name": "My Server",//项目名字
    "host": "localhost",//linux地址ip
    "port": 22,//linux地址端口
    "protocol": "sftp",
    "username": "username",//登录linux的用户名
    "password": "mkwimooc",//登录linux的密码
    "remotePath": "/",//项目目录地址:/data/devhome/lidy/applist/aaa/也可以写成/home/lidy/shuxiaotong/(如果不想让用户访问/data/devhome/这个目录,那么可以在/home/lidy目录里面创建软连接对应到/data/devhome/lidy/applist/aaa/目录)
    "uploadOnSave": true, //本地更新文件保存会自动同步到远程文件
}

3、调试

需要开发人员登录到linux服务器手动操作更新代码。
第二步配置完vscode自动上传文件以后,那么本地编辑完文件保存后就自动同步到了linux上了,访问:api-lidy.student.com 就能看到效果了。
如果想提交代码,那么可以在本地git当中进行提交,linux上面不用执行提交代码的操作,因为是同步上去的;
如果想在linux上拉取别人提交的代码,需要把同步上去的文件给忽略掉,在linux个人目录下执行:git checkout .
然后再执行:git fetch origin	git merge origin 或者执行git pull
这样linux上就拉取了最新的代码,本地记得也要拉取一下。
点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
软件工程师
手记
粉丝
19
获赞与收藏
134

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消