android系统定制开发Nginx配置

配置

一、nginxandroid系统定制开发常用配置命令

android系统定制开发配置命令路径

/usr/local/nginx/sbin
  • 1

查看nginx版本

./nginx -v
  • 1

停止nginx服务

./nginx -s stop
  • 1

启动nginx服务

./nginx
  • 1

重新加载nginx,适用于当nginx.confandroid系统定制开发配置文件修改后,android系统定制开发使用下面命令可以使得android系统定制开发配置文件生效

./nginx -s reload
  • 1

查看nginxandroid系统定制开发服务是否运行

netstat -ntlp
  • 1

二、nginx配置文件

由三部分组成

(一)、第一部分:全局块

nginx服务器全局生效的配置命令

worker_processes  1;   # 服务器并发处理能力,值越大并发能力越强(受自身配置限制)
  • 1

(二)、第二部分:events块

影响nginx和用户网络的连接

worker_connections  1024;  #最大连接数1024个,需灵活配置
  • 1

(三)、第三部分:http块

nginx配置最频繁的部分,比如代理,日志,缓存、第三方模块等等。
需要注意的是http块可以包括http全局块和server块

1、http全局块

包括文件引入、MIME-TYPE定义,日志自定义、连接超时等等

http {    include       mime.types;      #文件扩展名与文件类型映射表    default_type  application/octet-stream;  # 访问到未定义的扩展名的时候,就默认为下载该文件
  • 1
  • 2
  • 3

2、server块

与虚拟主机有密切关系,主要是为了节省硬件成本
一个http块可以包含多个server块,而一个server块就等于一个虚拟主机
server块又包含全局server块和location块
全局server块

server {    listen       8012;       #  目前监听的端口号    server_name  localhost;  # 主机名称
  • 1
  • 2
  • 3

3、location块

   location / {     #表示默认首页            root   html;            index  index.html index.htm;
  • 1
  • 2
  • 3

三、nginx配置反向代理

(一)、预计实现的效果

1、访问URL http://www.giunwr.cn:8012/xxx(不包括下面2种情况) 内部跳转到tomcat服务器8080端口
2、访问http://www.giunwr.cn:8012/8080/xxx 内部跳转到 http://www.giunwr.cn:8080/xxx
3、访问 http://www.giunwr.cn:8012/8081/xxx 内部跳转到 http://www.giunwr.cn:8081/xxx

(二)、前期准备

安装tomcat服务(需要安装2个,一个8080端口,一个8081端口)
下载tomcat,如果链接404,就到官网下再找个

wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.0.16/bin/apache-tomcat-10.0.16.tar.gz
  • 1

安装过程

tar -zxvf  apache-tomcat-10.0.16.tar.gz # 解压cd apache-tomcat-10.0.16  # 进入tomcat主目录cd bin  # 进入bin目录./startup.sh   # 启动tomcat服务
  • 1
  • 2
  • 3
  • 4


如果jdk报错
安装命令如下

yum -y install java-1.8.0-openjdk*
  • 1

查看tomcat服务是否正常运行

cd logs/        #   进入日志路径tail -f catalina.out    # 查看 tomcat运行日志
  • 1
  • 2


内网环境测试
可以正常访问

外网环境测试
emmm, 忘记开防火墙了(放行8080端口)

放行8080端口后,
访问URL http://www.giunwr.cn:8012
外网测试成功

修改tomcat默认端口
修改配置文件server.xml

apache-tomcat-10.0.16/conf   # 配置文件路径
  • 1



测试文件的准备
在webapps目录下创建相关的html文件

(三)、实现反向代理

修改nginx.conf文件

 vim /usr/local/nginx/conf/nginx.conf
  • 1

其中 ~ 表示正则匹配,优先级高于/

修改好后记得重新加载配置文件

 ./nginx -s reload
  • 1

在没有防火墙的情况下访问成功

关闭防火墙,再进行测试
直接访问8080端口直接报错

访问8012端口,访问成功,说明这个命令只是在服务器内部做代理,并没有走公网。

proxy_pass http://127.0.0.1:8080
  • 1


访问http://www.giunwr.cn:8012/8080/xxx 内部跳转到 http://www.giunwr.cn:8080/xxx


访问 http://www.giunwr.cn:8012/8081/xxx 内部跳转到 http://www.giunwr.cn:8081/xxx

四、nginx配置负载均衡

(一)、预期效果

浏览器输入地址http://www.giunwr.cn:8012/test/a.html,大概平均分配到8080和8081端口的tomcat服务器,实现负载均衡。
默认分配测试是轮询

(二)、前期准备

1、准备2台tomcat服务,一个端口为8080,一个端口为8081
2、2台服务器都需要在webapps目录下创建目录test,并在目录test里面创建a.html

(三)、实现功能

修改nginx配置文件
在http块中修改

upstream myserver {    server 127.0.0.1:8080;server 127.0.0.1:8081;}server {    listen       8012;    server_name  localhost;    location / {        root   html;    proxy_pass http://myserver;        i
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11


其中upstream在http块里面。myserver为自定义的名称
多访问几次URLhttp://www.giunwr.cn:8012/test/a.html,可以发现几乎是8080的tomcat服务和8081的tomcat服务器之间来回访问

 for ((i=1;i<5;i++));do curl  'http://www.giunwr.cn:8012/test/a.html' ;done
  • 1

(四)、负载均衡的分配策略

1、轮询(默认就是这种策略)

按请求时间逐一分配,如果某个服务器挂了,就自动剔除

2、weight(权重)

默认weight值是1,值越大表示权重越大,分配到的几率也就越大
当后端服务器性能不均时候,可以考虑该策略
示例

upstream myserver {    server 127.0.0.1:8080 weight=5;	server 127.0.0.1:8081 weight=10;}
  • 1
  • 2
  • 3
  • 4

3、ip_hash

每个请求按访问ip的hash结果分配,这样子访客固定访问一个后端服务器,可以解决session问题
举个例子:
A用户固定ip,第一次访问到8080tomcat,那么后面就都是访问到这台机器
示例

upstream myserver {    ip_hash;    server 127.0.0.1:8080;	server 127.0.0.1:8081;}
  • 1
  • 2
  • 3
  • 4
  • 5

4、fair(第三方)

根据后端响应时间来分配请求,需要时间短的优先分配
示例
示例

upstream myserver {    server 127.0.0.1:8080;	server 127.0.0.1:8081;	fair;}
  • 1
  • 2
  • 3
  • 4
  • 5

五、nginx配置动静分离

(一)、预期效果

nginx适合处理静态界面(或者说静态请求),
tomcat适合处理动态界面(或者说动态请求)
动静分离的方式:
1、静态文件一个域名,放在独立的服务器中
2、混合发布,使用nginx分离
通过location指定不同后缀名实现不同的请求和转发。比如expires头部,用于设置过期时间

这边使用第一种方案

(二)、前期准备

准备静态资源

(三)、配置与实现

配置

location /www/ {    root   /data/;    index  index.html index.htm;}location /txt/ {        root   /data/;        # 列出当前目录的下的资源        autoindex  on;    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9


实现效果

六、第三方模块stub_status安装

(一)、安装步骤

1、查看是安装该模块(默认不安装)需要进入nginx目录下的sbin目录

[sbin]# ./nginx -V 2>&1|grep stub_status
  • 1

如果内容为空,即没有安装
3、查看当前已经安装的模块

./nginx -V
  • 1

在这里插入图片描述

4、重新配置参数
在原来的参数基础上加上 with-http_stub_status_module

./configure --prefix=/usr/local/nginx --pid-path=/var/local/nginx/nginx.pid --lock-path=/var/local/nginx/nginx.lock --error-log-path=/var/local/nginx/error.log --http-log-path=/var/local/nginx/access.log --with-http_gzip_static_module --with-http_stub_status_module --http-client-body-temp-path=/var/local/nginx/client --http-proxy-temp-path=/var/local/nginx/proxy --http-fastcgi-temp-path=/var/local/nginx/fastcgi --http-uwsgi-temp-path=/var/local/nginx/uwsgi --http-scgi-temp-path=/var/local/nginx/scgi
  • 1


5、做好备份

cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
  • 1

6、重新编译
注意只需要编译即可

make
  • 1

7、替换掉原来的二进制nginx文件
在nginx安装目录下的objs目录里面

cp /root/wr/nginx-1.20.2/objs/nginx /usr/local/nginx/sbin/
  • 1

(二)、配置与实现

1、配置简单的监控功能
在server块里面写入下面配置命令

location /nginx_status {        stub_status;        allow all;}
  • 1
  • 2
  • 3
  • 4


2、重新启动nginx

./nginx -s reload
  • 1

3、实现效果
访问http://主机地址/nginx_status即可


active connections – 活跃的连接数量
server accepts handled requests — 总共处理了xxx个连接 , 成功创建xxx次握手, 总共处理了xxx个请求
reading — 读取客户端的连接数.
writing — 响应数据到客户端的数量
waiting — 开启 keep-alive 的情况下,这个值等于 active – (reading+writing), 意思就是 Nginx 已经处理完正在等候下一次请求指令的驻留连接.

(三)、遇到的问题

1、无法替换二进制nginx文件

原因是nginx服务器还在运行,需要停止nginx

./nginx -s stop
  • 1

2、重新加载nginx报错
nginx: [error] open() “/usr/local/nginx/logs/nginx.pid” failed (2: No such file or directory)

解决办法,重新指定一下nginx配置文件

./nginx -c /usr/local/nginx/conf/nginx.conf
  • 1

七、nginx压缩模块

在http模块里面开启压缩

gzip  on;    #开启压缩响应gzip_http_version 1.1;  # 只针对http1.1进行压缩gzip_comp_level 9;      # 压缩等级为9gzip_types text/plain;  # 压缩类型为文本
  • 1
  • 2
  • 3
  • 4

其他具体参数可以参考文档
参考文档:https://www.jb51.net/article/146413.htm

八、https配置

1、先判断是否又ssl模块,可参考第六大点
2、这边已安装过ssl模块(–with-http_ssl_module)
修改配置文件,添加server模块接即可

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发