一些杂想(服务器篇)

一些杂想(服务器篇)

HTTP模块的三个逻辑区段

http:允许定义指令和嵌入 HTTP 相关模块的区段。

server: 允许声明一个站点。

location:定义一组设置,应用于网站的一个特定位置。

rewrite 模块:执行 URL 重定向。

SSI 是 Server Side Include 的首字母缩略词。包含有嵌入式服务器方包含命令的 HTML 文本。在被传送给浏览器之前,服务器会对 SHTML 文档进行完全地读取、分析以及修改。

将第三方的模块集成到 Nginx 中

  • 下载相关功能模块的 .tar.gz 归档文件。
  • 使用命令 tar xzf module.tar.gz 解压。
  • 通过命令 ./configure —add-module=/module/source/path […] 配置编译 Nginx。

源码安装方法

  • 下载一个包含代码的 .tar.gz 归档文件,然后再解压该文件,进入解压后的目录,再执行三个命令分别为 ./configure, make 和 make install 。
  • ./configure 进行程序验证过程,以便确定系统包含所有必要的组成成分。
  • make 对应用程序进行编译
  • make install 复制编译后的文件(也包括资源文件)到安装目录。

运行应用程序

  1. 要执行的程序就在当前工作目录下: 解决方法:在要执行的文件前面加上 ./ (句点和斜线),这么做的原因是强迫 shell 在当前的工作目录中查找要执行的文件。
  2. 要执行的程序不在当前的工作目录下,但你知道该文件的路径。 解决方法:键入该文件的完整路径。
  3. 要执行的程序位于环境变量 PATH指定的值内。 解决方法:直接键入文件名,而不用指出其路径。

符号 > 允许你把文本写到文件中,如果指定的文件已经存在,原始的内容会被删除和替换。 touch 命令用于更新一个文件的访问日期和修改时间。

压缩和解压

  • 使用 gzip 和 bz2 建立 tarball 的压缩包语法如下: tar czvf archive.tar.gz [file1 file2…] tar cjvf archive.tar.bz2 [file1 file2…]
  • 解压文件 tar xzvf archive.tar.gz tar xjvf archive.tar.bz2

安装 Nginx 的先决条件

依赖库:GCC, PCRE, zlib, OpenSSL 。

  • GCC(由于 Nginx 有 C 语言编写,因此需要在系统上安装一个编译工具) 基本上 Linux 自带,可以通过命令 gcc 查看是否安装,显示 no input fles, 即为已安装。
  • PCRE库(Nginx 的 Rewrite 模块和 HTTP 模块会使用到 PCRE 正则表达式语法)
apt-get install libpcre3 pibpcre3-dev(Ubuntu 下)
yum install pcre pcre-devel (centOS 下)
  • zilb(在 Nginx 的各种模块中需要使用 gzip 压缩)
apt-get install zlib1g zlig1g-dev (Ubuntu 下)
yum install lib zlib-devel (centOS 下)
  • OpenSSL (在 Nginx 中,如果服务器提供安全网页则会用到 OpenSSL 库)
apt-get install openssl libssl-dev (Ubuntu 下)
yum install openssl openssl-dev (centOS 下)
  • 在 /home 下新建一个 src 目录
mkdir src && cd src
  • 源码安装
Nginx wget http://nginx.org/download/nginx-1.14.0.tar.gz
  • 解压
tar zxf nginx-1.14.0.tar.gz 
  • 执行
./configure
make 
make install 

./configure 进行程序验证过程,以便确定系统包含所有必要的组成成分。

make 对应用程序进行编译,一个成功的 build 编译应该会出现最后的信息:

make[1]: leaving directory followed by the project source path.

make install 复制编译后的文件(也包括资源文件)到安装目录。

杂七杂八(一)

  • Nginx 默认运行在80端口。
  • 虚拟主机 :
<VirtualHost A.B.C.D:8080>…</VirtualHost>
  • proxy模块:代理模块。放在 location 区段。
  • upstream 区段:指定多个服务器。
  • 使用重新载入来替代重新启动服务—宁愿选择 service nginx reload 而别选择 service nginx restart
  • 在某些情况下,如果不是特别需要,不管你使用的 Nginx 如何建立,都应该避免使用 if 语句。
  • 运行与后台,作为守护进程运行的程序,守护进程的名称后通常带有 “d” 字样。例如 httpd 是 HTTP 服务器的守护进程。运行守护进程时,屏幕上不会出现任何文本信息,并且提示符会立即返回。
  • www-data 用于运行 Nginx 进程的用户和组(user 和 group)
  • Nginx 的 master 进程,由 root 启动
  • 在大多数类 Unix 系统上,由 root 账户开启的进程允许在开发任何端口的 TCP 套接字,但是其他用户启动的程序只能监听1024以上的端口。如果不是以 root 账户启动 Nginx,将无法得到标准的端口(如80和443),即无法启动。
  • uanm -a 返回系统内核信息
  • ubuntu 下 openssl-dev 等于 libssl
  • Nginx 的默认安装目录是 /usr/local/nginx,通过/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf启动 Nginx。
  • 查看进程是否启动: ps -ef | grep nginx
  • 错误信息: Can't open /etc/rc.d/init.d/functions /etc/rc.d/init.d/functions是CentOS的位置,Ubuntu对应:/lib/lsb/init-functions 所以到 vim /etc/init.d/nginx 修改路径为:/lib/lsb/init-functions

杂七杂八(二)

  • Django 语言问题 LANGUAGE_CODE = 'zh-Hans' #使用中文简体 TIME_ZONE = 'Asia/Shanghai' #地址定位到上海,北京会报错!!
  • 解决显示不明确的标题,在类下面加入如下函数 def __str__(selft): return self.name Python2中:def __unicode__(self): python3中: def __str__(self): str()函数将会返回我们定义好的数据格式
  • Linux 下不是 root 用户时,安装库包使用 sudo 命令 。
  • sudo apt-get update 用于更新安装好的系统信息(获取列表) sudo apt-get upgrade 获取所有需要更新或升级的项目(安装更新)
  • 查询端口:lsof -I:端口号 结束端口:kill -9 PID
  • locals()函数会把内存中的所有局部变量使用字典类型打包起来。
  • Please check that your locale settings问题 解决方法: echo "export LC_ALL=C" >> /root/.bashrc source /root/.bashrc
  • 使用 grep 指令找出和项目有关的字符串,如: grep ‘test4’ *.py 将列出当前目录下所有匹配到 test4 的文件和文件中的所匹配行。
  • -p 参数可以创建多层文件夹 mkdir -p file/file2

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏FreeBuf

使用CMSTP绕过AppLocker的方法介绍

CMSTP是一个与Microsoft连接管理器配置文件安装程序关联的二进制文件。它接受INF文件,这些文件可以通过恶意命令武器化,以脚本(SCT)和DLL的形式...

11130
来自专栏云计算教程系列

如何在Ubuntu 14.04上使用Pydio托管文件共享服务器

随着云的采用增加,越来越多的数据被远程存储。从音乐到图片再到个人文档,很多人都将文件上传到他们不管理的服务器上。如果您希望将文件保存在您控制的服务器上,则可以使...

40200
来自专栏happyJared

基于Docker的Redis高可用集群搭建(redis-sentinel)

  之前介绍了用docker来搭建redis主从环境,但这只是对数据添加了从库备份(主从复制),当主库down掉的时候,从库是不会自动升级为主库的,也就是说,该...

71310
来自专栏云计算教程系列

如何在服务器上安装LAMP

在本教程中,我们将在Ubuntu上安装LAMP。Ubuntu将满足我们的第一个要求:Linux操作系统。没有服务器的同学可以在这里购买,不过我个人更推荐您使用免...

55620
来自专栏蓝天

thrift使用小记

    Thrift是一个跨语言的服务部署框架,最初由Facebook于2007年开发,2008年进入Apache开源项目。Thrift通过一个中间语言(IDL...

18110
来自专栏陈树义

高效开发技巧:为什么你下载Git项目这么慢?

笔者所在公司采用的是 GitLab 进行版本管理,但许多同事下载 Git 项目的路径是这样的: 打开浏览器 -> 输入网址 -> 查找项目地址 -> 复制项目...

37440
来自专栏网络

CobaltStrike团体服务器部署并后台运行

大家好,我是你们的老朋友Alex。Cobaltstrike的部署安装很简单,但是在实际使用中出现了问题。我把团队服务器放在ECS上,出现了两个问题:1.客户端无...

35960
来自专栏北京马哥教育

HTTP 协议漫谈

简介 网络上已经有不少介绍 HTTP 的好文章,对HTTP的一些细节介绍的比较好,所以本篇文章不会对 HTTP 的细节进行深究,而是从够高和更结构化的角度将 H...

313110
来自专栏美丽应用

树莓派折腾记:部署LNMP环境并实现多站点共存

16740
来自专栏Linyb极客之路

RESTFUL API 安全设计指南

REST的全称是REpresentational State Transfer,表示表述性无状态传输,无需session,所以每次请求都得带上身份认...

15820

扫码关注云+社区

领取腾讯云代金券