当前位置: 首页 > news >正文

北京网站建设公司案例seo技术培训学校

北京网站建设公司案例,seo技术培训学校,汝阳县建设局网站,大理网站制作项目里面有一个需求,就是需要用让nginx进程提供给系统管理一个start,stop和getPid方法,这样系统管理可以自动拉起来nginx,达到自动部署的目的。离线部署同样适用 这样一来,我就需要提供windows版本linux不同版本的nginx源码包&am…

项目里面有一个需求,就是需要用让nginx进程提供给系统管理一个start,stop和getPid方法,这样系统管理可以自动拉起来nginx,达到自动部署的目的。离线部署同样适用

这样一来,我就需要提供windows版本linux不同版本的nginx源码包,windows版本的好办,就直接从官网下载的,我下载的是nginx1.24.0的稳定版本的,linux版本的就需要自己编译源码包了,因为wget下载的nginx首先产物目录就很不一样,我需要就是跟windows差不多的目录结构,便于我写nginx.conf配置文件

window的产物目录如下

linux产物目录如下

linux的这个产物只需要编译一次,后面部署就直接拷贝这个就可以了,编译的过程如下:

官网下载nginx源码,新建一个文件夹叫Nginx

进入到源码目录 

./configure --prefix=新建的产物目录地址
make -j12
make install 

可能中间需要装 pcre库,wget 下载一下好了。

pcre是因为我的nginx配置需要用到正则,就是html下面有不同文件夹,每个文件夹是一个项目,部署的时候有多少个文件夹部署多少个项目。

这个过程比较曲折,首先nginx没有地方写日志是不会启动成功的,所以配置文件需要指定日志的生成位置,还有配置文件的启动位置,pid等

贴一份windows的配置文件:

worker_processes  1;
error_log  D:/code/system/run/nginx/logs/error.log error;
pid        D:/code/system/run/nginx/logs/nginx.pid;
events { worker_connections  1024; 
} 
http { include       mime.types; default_type  application/octet-stream; sendfile        on; keepalive_timeout  65; access_log D:/code/system/run/nginx/logs/access.log; map $_FilePath $_FilePathForUse { "" "index.html"; "/" "index.html";default $filePathFromRemote; }client_body_temp_path D:/code/system/run/nginx/temp/client_temp; proxy_temp_path D:/code/system/run/nginx/temp/proxy_temp; fastcgi_temp_path D:/code/system/run/nginx/temp/fastcgi_temp; uwsgi_temp_path D:/code/system/run/nginx/temp/uwsgi_temp;scgi_temp_path D:/code/system/run/nginx/temp/scgi_temp; server { listen 8090; location /{ gzip on; gzip_static on; root  D:/code/system/run/nginx/html/; add_header X-URI-Part1 $1; add_header X-URI-Part2 $2; add_header 'Access-Control-Allow-Origin' '*'; add_header 'Access-Control-Allow-Credentials' 'true'; set $module $1; set $filePathFromRemote $2; set $_FilePath "$filePathFromRemote"; } error_page 500 502 503 504 /50x.html; } server { listen 9000; location / {  root  D:/code/system/run; autoindex on;  add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Headers X-Requested-With;  add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,OPTIONS;  }  } 
} 

两个server是因为还用到了nginx做文件服务

linux版本的配置文件:

  worker_processes  1;error_log  ${ROOT_DIR}/run/nginx/logs/error.log error;pid         ${ROOT_DIR}/run/nginx/logs/nginx.pid;events {worker_connections  1024;}http {include       mime.types;default_type  application/octet-stream;sendfile        on;keepalive_timeout  65;access_log  ${ROOT_DIR}/run/nginx/logs/access.log; map $_FilePath $_FilePathForUse {"" "index.html";"/" "index.html";default $filePathFromRemote;}client_body_temp_path ${ROOT_DIR}/run/nginx/client_temp;proxy_temp_path ${ROOT_DIR}/run/nginx/proxy_temp;fastcgi_temp_path ${ROOT_DIR}/run/nginx/fastcgi_temp;uwsgi_temp_path ${ROOT_DIR}/run/nginx/uwsgi_temp;scgi_temp_path ${ROOT_DIR}/run/nginx/scgi_temp;server {listen 8090;server_name localhost;location ~ ^/([^/]+)(/?.*)$ {root  ${ROOT_DIR}/run/nginx/html/;add_header 'Access-Control-Allow-Origin' '*';add_header 'Access-Control-Allow-Credentials' 'true';set $module $1;set $filePathFromRemote $2;set $_FilePath "$filePathFromRemote";}error_page 500 502 503 504 /50x.html;location = /50x.html {root ${ROOT_DIR}/run/nginx/html;}}server {listen 9000;server_name localhost;location / {root ${ROOT_DIR}/run;autoindex on;add_header Access-Control-Allow-Origin *;add_header Access-Control-Allow-Headers X-Requested-With;add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,OPTIONS;}}}

这两个配置文件的生成是通过脚本自动写入的,用到了各自系统的环境变量

下面就是启动程序了

start方法

#ifdef _WIN64cmd = fmt::format("{}/nginx/nginx -c {}/nginx/conf/nginx.conf -e {}/nginx/logs/error.log",根目录,根目录);#endif #ifdef __linux__cmd = fmt::format("{}/nginx/sbin/nginx -c {}/nginx/conf/nginx.conf -e {}/nginx/logs/error.log",根目录,根目录,根目录);#endif

大概就是通过命令行启动nginx进程,涉及到一些公司里面封装的底层方法,就不方便写了。。

stop方法同理

getPid方法比较复杂,nginx每次启动成功都会往nginx.pid文件写入一个进程号,需要把文件读出来然后返回出去,而且需要自己判断进程是不是存活,不能返回一个没有启动的进程出去。

启动成功之后浏览器输入当前机器的ip地址:8090就能访问到内容

系统管理界面可以管理nginx的启停

http://www.hkea.cn/news/986979/

相关文章:

  • wordpress怎么设置导航镇江seo
  • 番禺建设网站服务软文写作网站
  • 有哪些专做自然风景图片的网站石首seo排名
  • 移动网站虚拟主机seo 排名 优化
  • 专业网站建设课程网站推广优化方式
  • 适合站长做的网站信息流广告投放工作内容
  • 做健身网站步骤网站建设网络公司
  • 武汉整站seo数据上云网站关键词优化怎么做的
  • 网站尾部网络seo推广
  • 建设一个公司网站需要什么知识网站网络推广优化
  • 政府高度重视网站建设怎么做网络推广
  • 自己做的网站是怎么赚钱免费ip地址网站
  • 郑州市政府网站集约化建设计划企业seo排名外包
  • 什么网站可以免费做护师题企业网站管理系统源码
  • 青岛专业餐饮网站制作国内搜索引擎排行榜
  • 域名有哪些seo站长之家
  • 建设网站有哪些关键词制作软件
  • 视频网站怎么制作网店推广的作用是什么
  • 网站栏目怎么做单独的搜索框云南疫情最新消息
  • 独立商城b2c电商网站开发合肥百度seo代理
  • 做购物网站需不需要交税费郑州网站托管
  • 是不是做网站就能赚钱谷歌seo关键词优化
  • 萝岗门户网站建设今日重大新闻头条财经
  • 个人相册网站模板怎么把网站排名排上去
  • 建设外贸网站案例统计站老站长推荐草莓
  • 1688网站的特点全网营销系统
  • 西安做网站企业网址怎么申请
  • 专业网站建设品牌百度指数里的资讯指数是什么
  • 做网站规避什么网站制作
  • 网站开发工作方案2022拉人头最暴利的app