Nginx(“engine x”)是一款是由俄罗斯的程序设计师 Igor Sysoev 所开发高性能的Web 和 反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。在高连接并发的情况下,Nginx是Apache服务器不错的替代品。 安装步骤...
上一步完成了必要的软件安装,接下来需要在 Linux 系统上安装 nginx。
Nginx(“engine x”)是一款是由俄罗斯的程序设计师 Igor Sysoev 所开发高性能的 Web 和 反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。在高连接并发的情况下,Nginx 是Apache 服务器不错的替代品。
Step 0:安装必要环境
上一篇教程中我们使用 Linux Deploy 安装的是 Ubuntu 系统,Ubuntu 缺省情况下,并没有提供 C/C++ 的编译环境,因此还需要手动安装。
单独安装 gcc 以及 g++ 比较麻烦,为了能够编译 Ubuntu 的内核,Ubuntu 提供了一个 build-essential 软件包,它提供了编译程序必须的软件包。
如果是用普通用户登录的系统,使用sudo apt-get install build-essential命令安装软件包。
sudo 命令以系统管理者的身份执行指令,也就是说,经由 sudo 所执行的指令就好像是由 root 亲自执行。
如果已经切换至 root 用户,则可以直接使用apt-get install build-essential命令。
然后使用apt-get install libtool命令安装 libtool。
除此之外,由于我们后面还需要使用 wget 命令获取所需的库,上一篇教程中安装的系统中缺少 wget,所以我们使用apt-get install wget命令安装 wget:
这篇文章中尽量使用 root 用户,避免权限不足。
Step 1:选定安装目录
可以选择任何目录,为了方便,本文选择/usr/local/src目录。
使用cd /usr/local/src命令切换目录。
下载 PCRE 安装包:
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.42.tar.gz
解压安装包:
tar -zxvf pcre-8.42.tar.gz
进入安装包目录:
cd pcre-8.42
编译安装:
./configure make make install
Step 3:安装 zlib
在http://zlib.net/ 网站中下载最新的 zlib 包,这里选择 zlib-1.2.11.tar.gz,使用下面命令下载编译和安装 zlib 包:
cd /usr/local/src wget http://zlib.net/zlib-1.2.11.tar.gz tar -zxvf zlib-1.2.11.tar.gz cd zlib-1.2.11 ./configure make make install
Step 4:安装 openssl
cd /usr/local/src wget https://www.openssl.org/source/openssl-1.1.0h.tar.gz tar -zxvf openssl-1.1.0h.tar.gz cd openssl-1.1.0h ./config make make install
openssl 的安装时间比较长。如果安装错误可以试试其他版本的 openssl。
据评论:手机型号一加3T,安装 openssl 出错,解决方法:安装 openssl-fips-2.0.16.tar.gz 版本
Step 5:安装 Nginx
Mainline version:Mainline 是Nginx 目前主力在做的版本,可以说是开发版
Stable version:最新稳定版,生产环境上建议使用的版本
Legacy versions:遗留的老版本的稳定版
这里我们选择稳定版,下面是安装 Nginx 的步骤:
cd /usr/local/src wget http://nginx.org/download/nginx-1.14.0.tar.gz tar -zxvf nginx-1.14.0.tar.gz cd nginx-1.14.0 ./configure --with-http_stub_status_module --with-http_ssl_module make make install
--with-http_stub_status_module表示支持 nginx 状态查询。
--with-http_ssl_module表示开启 HTTP SSL 模块,以支持 HTTPS 请求。
./configure 后的结果。
/usr/local/nginx就是 nginx 的安装目录。
安装好之后简单配置一下 nginx,配置文件在系统中的路径是/usr/local/nginx/conf/nginx.conf。
可以使用 vim 命令进行操作(默认没有安装 vim,需要手动 apt-get 安装),或者直接使用手机上装的 ES 文件浏览器进行修改。
打开 ES 文件浏览器,退回到根目录,配置文件的位置是:
/data/user/0/ru.meefik.linuxdeploy/env/rootfs/linux/usr/local/nginx/conf/nginx.conf
可以看出,ES 文件浏览器路径中 linux 后面的部分就是我们系统的位置。
打开配置文件后,找到 server,每个 server 部分代表一个 web 站点,就是我们需要修改的地方。
listen 是监听端口,默认是 80。
server_name 是外网访问的域名,这里我们修改为 Linux Deploy 上显示的地址,我这里就是 192.168.1.115。
在默认 location 前面添加以下代码,使得可以查看 nginx 状态:
location /status { stub_status; }
location 代表一个过滤器,/匹配所有请求,我们还可以根据自己的情况定义不同的过滤,比如对静态文件js、css、image 制定专属过滤。
root html代表站点的根目录,完整地址是/usr/local/nginx/html,在ES 文件浏览器中转到这个文件夹后可以看到默认有两个文件,一个是 50x.html,一个是 index.html。可以根据自己的需求更改站点的目录路径。
完成后如下所示:
修改完成后检查配置文件 nginx.conf 的正确性:
/usr/local/nginx/sbin/nginx -t
据评论:nginx 检查出现 “nginx: [emerg] getgrnam(“nobody”) failed nginx: configuration file /usr/local/nginx/conf/nginx.conf test failed” 错误,可以参考 新建用户,且不让用户直接登录:
1 添加 nginx 用户组及用户
2 groupadd www
3 useradd -g www -s /usr/sbin/nologin www
不让www用户直接登录 添加一个名为 nobody 的用户后解决
没问题的话就可以启动 nginx 了,nginx 的启动需要有 root 权限:
/usr/local/nginx/sbin/nginx
然后在电脑浏览器中输入 server_name 中配置的地址192.168.1.115,出现如下页面就说明 nginx 安装配置成功。
更改网址为192.168.1.115/status即可查看 nginx 状态。
Active connections: 1 —— nginx现在的连接数
server accepts handled requests
—— nginx 握手的次数,处理的次数,请求的次数。一般情况下,前面的两个数应该是相等的,表示没有丢失。
Reading: 0 Writing: 1 Waiting: 0
Reading:在读的连接数
Writing:在写的
Waiting:在等待的,一般是处理长连接的时候才会出现,keeplive
至此,nginx 在Linux 上的配置已经完成,但是现在只能通过局域网内的电脑对网站进行访问,最后一个教程将完成内网穿透,使得外网可以通过域名访问内网网站。
之前无意间看到了一篇《在安卓上部署服务器》的文章,正好最近换了新手机,正好最近在学 Python 和HTML,就想着跟着教程搭一个服务器。 但是原博有些地方写的比较简单,有些有坑的地方没有提及,有些软件更新了...
之前无意间看到了一篇《在安卓上部署服务器》的文章,正好最近换了新手机,正好最近在学 Python 和HTML,就想着跟着教程搭一个服务器。
但是原博有些地方写的比较简单,有些有坑的地方没有提及,有些软件更新了版本,跟原博有些出入,于是决定写一篇博客详细记录一下。
step 0:预备工作
需要工具:
一部安卓手机一台能上网的电脑
我的旧手机是 MIUI 的操作系统,但是在安装 Linux Deploy 的时候会重启,因此我将系统刷成了MoKee,lineageos上也有很多 rom 可以刷。
其他手机系统不知道会不会有这个问题,可以先继续,如果安装 Linux Deploy 的时候有问题再刷机也不迟。刷机教程网上太多,就不写了。
由于国内手机自带的 recovery 一般都会验证签名,因此最好将 recovery 刷成 TWRP,这是最常用的用来刷第三方包的 recovery。
TWRP 有三种刷入方法:
官网选择对应设备,下载 img 文件,使用 adb 刷入。前置技术需求:英语、adb,不方便,不推荐。下载官方app,安装。
第一项和第三项勾选上,第二项是使用 root 运行,可以不勾选,但是大多数特性将不可用。
选择“TWRP FLASH”,第二项是备份当前 recovery,有需要的可以自己备份。
前面选择了 root 选项的需要允许授权。
然后需要选择设备,选好对应设备后会让你选择版本,都选好后会自动跳转网页。
下载 img 文件,下载好之后退回到 TWRP app 中。
“Select a file to flash”选择刚才下载的 img 文件,然后点击“FLASH TO RECOVERY”。
刷入成功,缺点是没有中文。在国内手机论坛中下载别人制作好的卡刷包,我用的就是在 MIUI 论坛上下载的,基本上每个手机都会有对应的版本,而且都有汉化版。下载好之后放到存储卡,关机后长按“音量 + 和电源键”进入 recovery,通过原来的 recovery 刷入,MIUI 用户可以将压缩包重命名为 update.zip,在recovery 中使用通过 updata.zip 更新。
第二种方法最好是已经 root 的设备,方法三不需要进行 root,自行考虑使用哪种方法。
step 1:root
MIUI 系统需要解锁 Fastboot 才能 root。其他手机系统没用过,不清楚。已经 root 过的可以跳过这一步,需要 root 的要使用 supersu。