首页 > 系统相关 >Nginx 1

Nginx 1

时间:2023-10-23 20:32:42浏览次数:26  
标签:service nginx 代理 192.168 Nginx 服务器 客户端


一、关于Nginx

1.Nginx

Nginx同Apache一样都是一种WEB服务器。基于REST架构风格,以统一资源描述符(Uniform Resources Identifier)URI或者统一资源定位符(Uniform Resources Locator)URL作为沟通依据,通过HTTP协议提供各种网络服务。

Nginx是一个跨平台服务器,可以运行在Linux,Windows,FreeBSD,Solaris,AIX,Mac OS等操作系统上

Nginx ("engine x") 是一个高性能的 HTTP 和反向代理服务器,特点是占有内存少,并发能 力强

2.代理

1)正向代理: 隐藏客户端信息

正向代理最大的特点是客户端非常明确要访问的服务器地址;服务器只清楚请求来自哪个代理服务器,而不清楚来自哪个具体的客户端;正向代理模式屏蔽或者隐藏了真实客户端信息。

正向代理,"它代理的是客户端,代客户端发出请求",是一个位于客户端和原始服务器(origin server)之间的服务器

正向代理的用途:

1)访问原来无法访问的资源,如Google

2)可以做缓存,加速访问资源

3)对客户端访问授权,上网进行认证

4)代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息

2)反向代理:隐藏服务端信息

请求的来源也就是客户端是明确的,但是请求具体由哪台服务器处理的并不明确

反向代理,其实客户端对代理是无感知的,因为客户端不需要任何配置就可以访问,我们只 需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返 回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器 地址,隐藏了真实服务器 IP 地址。

反向代理的作用:

1)保证内网的安全,通常将反向代理作为公网访问地址,Web服务器是内网

2)负载均衡,通过反向代理服务器来优化网站的负载

3)二者区别

在正向代理中,Proxy和Client同属于一个LAN,隐藏了客户端信息;

在反向代理中,Proxy和Server同属于一个LAN,隐藏了服务端信息;

实际上,Proxy在两种代理中做的事情都是替服务器代为收发请求和响应,不过从结构上看正好左右互换了一下,所以把后出现的那种代理方式称为反向代理了。



二、Nginx的安装与配置

1.安装依赖环境

gcc安装

yum install -y gcc-c++

PCRE安装:

pcre是一个perl库,包括perl兼容的正则表达式库,nginx的http模块使用pcre来解析正则表达式,所以需要安装pcre库。

安装命令:

yum install -y pcre pcre-devel

zlib安装:

zlib库提供了很多种压缩和解压缩方式nginx使用zlib对http包的内容进行gzip,所以需要安装

安装命令:

yum install -y zlib zlib-devel

OpenSSL安装:

penssl是web安全通信的基石,没有openssl,可以说我们的信息都是在裸奔,所以需要安装

安装命令:

yum install -y openssl openssl-devel

 执行下命令安装上述命令 出现complete安装完成

yum install -y gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel

Nginx 1_nginx

Nginx 1_客户端_02编辑

2.安装nginx

 上传niginx压缩包 到 /usr/soft里面

Nginx 1_nginx_03

Nginx 1_nginx_04编辑

3.解压文件

root@localhost soft]# tar -zxvf nginx-1.15.10.tar.gz

4.配置

进入目录nginx-1.15.10  并使用默认配置./configure

Nginx 1_客户端_05

Nginx 1_服务器_06编辑

1). 编译和安装

make&&make install

2). 查看安装位置

whereis nginx

Nginx 1_nginx_07

Nginx 1_服务器_08编辑

3).进入安装目录启动nginx

[root@localhost /]# cd /usr/local/nginx/sbin/

Nginx 1_客户端_09

Nginx 1_客户端_10编辑

启动[ root@localhost sbin]#  ./nginx

Nginx 1_服务器_11

Nginx 1_nginx_12编辑

 4). 查询nginx进程

ps aux|grep -v grep|grep nginx

ps -ef|grep -v grep|grep nginx

[ root@localhost sbin]# ./nginx -s reload 重新加载

[ root@localhost sbin]# ./nginx -s quit 此方式停止步骤是待nginx进程处理任务完毕进行停止。

[ root@localhost sbin]# ./nginx -s stop:此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程。

5).访问nginx

出现下图界面安装成功

Nginx 1_服务器_13

Nginx 1_客户端_14编辑

5.nginx配置文件  

nginx.conf 主要由 全局块、events 块、http 块三部分组成

6.反向代理实例1

访问192.168.81.33 指向   http://192.168.81.33:8080/test;

进入nginx.conf配置文件设置代理

Nginx 1_nginx_15

Nginx 1_客户端_16编辑

7.反向代理实例2

根据访问的路径跳转到不同端口的服务器中

Nginx 1_服务器_17

Nginx 1_服务器_18编辑

location 指令说明 该指令用于匹配 URL。 语法如下:

location [ = | ~ |~* |^~] uri{}

1、= :用于不含正则表达式的 uri 前,要求请求字符串与 uri 严格匹配,如果匹配 成功,就停止继续向下搜索并立即处理该请求。

2、~:用于表示 uri 包含正则表达式,并且区分大小写。

3、~*:用于表示 uri 包含正则表达式,并且不区分大小写。

4、^~:用于不含正则表达式的 uri 前,要求 Nginx 服务器找到标识 uri 和请求字 符串匹配度最高的 location 后,立即使用此 location 处理请求,而不再使用 location 块中的正则 uri 和请求字符串做匹配。 注意:如果 uri 包含正则表达式,则必须要有 ~ 或者 ~* 标识。

8.Nginx配置负载均衡

修改nginx.conf文件

upstream 上游

upstream aaa

{

server 192.168.159.34:8080 ;

server 192.168.159.34:8081 ;

}

...

server {

listen 80;

server_name 192.168.109.35;

location /bbb {

root html;

index index.html index.htm;


proxy_pass http://aaa/;

1、轮询(默认)

每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。

2、weight

weight 代表权,重默认为 1,权重越高被分配的客户端越多

指定轮询几率,weight 和访问比率成正比,用于后端服务器性能不均的情况

upstream aaa{

server 192.168.159.34:8080 weight=10;

server 192.168.159.34:8081 weight=100;

3、ip_hash

每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器,可以解决 session 的问题。 例如:

upstream aaa{

ip_hash;

server 192.168.159.34:8080 ;

server 192.168.159.34:8081 ;

}

4、fair(第三方)

按后端服务器的响应时间来分配请求,响应时间短的优先分配。

upstream aaa{

fair;

server 192.168.159.34:8080 ;

server 192.168.159.34:8081 ;

}

三、配置nginx开机启动

1.创建nginx.service文件   

切换到/lib/systemd/system/目录,并创建nginx.service文件   

vim nginx.service 编辑以下内容 确认nginx.conf正确路径

Nginx 1_nginx_19

Nginx 1_服务器_20编辑

配置之后需要使文件生效

systemctl daemon-reload

退出并保存文件,

执行systemctl enable nginx.service使nginx开机启动           

2.设置开机自启动

nginx.service文件 完成后 

 [ root@localhost sbin] # ./nginx -s reload 重新加载

设置开机自启动

 [ root@localhost sbin] # systemctl enable nginx.service                      

查询当前状态 running自启动成功

Nginx 1_服务器_21

Nginx 1_客户端_22编辑

3.其他命令

#开机自启动

systemctl enable nginx.service

#停止开机自启动

systemctl disable nginx.service

#查询当前状态

systemctl status nginx.service

#启动服务

systemctl start nginx.service

#重新启动服务

systemctl restart nginx.service

#停止服务

systemctl stop nginx.service

#重新加载配置

systemctl reload nginx.service


标签:service,nginx,代理,192.168,Nginx,服务器,客户端
From: https://blog.51cto.com/u_16319048/7993839

相关文章

  • 启动Nginx报错:error while loading shared libraries: libpcre.so.0: cannot open sha
    1.现象:输入:/usr/local/nginx/sbin/nginx报错:/usr/local/nginx/sbin/nginx:errorwhileloadingsharedlibraries:libprofiler.so.0:cannotopensharedobjectfile:Nosuchfileordirectory2.错误原因:缺少libpcre.so.0,3.进一步查看:输入:ldd$(which/usr/......
  • k8s-nginx实战部署1
    目录yaml资源清单run_deploy.sh.gitlab-ci.ymlyaml资源清单deploy.yamlapiVersion:v1kind:ConfigMapmetadata:name:api-proxy-config-offline-mapdata:api_proxy.conf:|server{listen80;server_nameoffline-map;client_max_body_size......
  • Nginx+Keepalived
    学习自:https://www.nhooo.com/note/qa3jz9.html最终效果主从两个节点都安装nginx与keepalived,安装到相同路径安装Nginx点此:https://www.jianshu.com/p/1a51f2384c11安装keepalived下载安装包:https://www.keepalived.org/download.html#tar命令解压#进入解压后目录./c......
  • 统信桌面操作系统UOS上安装arm64版nginx
    hello,大家好啊,今天给大家带来一篇在统信桌面操作系统UOS上安装arm64版nginx的文章,本篇文章主要是给大家提供一种下载离线nginx软件包的方法,拿到软件包可以去不能链接互联网又没有仓库环境的电脑上安装,欢迎大家浏览分享,点一个关注可好。1、下载nginx离线包到本地pdsyw@pdsyw-PC:~/De......
  • nginx配置解决跨域访问
    场景:前后的分离项目,前端vue框架,打包后放在Tomcat里访问,端口是8080,后端服务端口8058。访问前端项目时,调用后端接口报跨域。后端环境正常访问端口8058经过nginx配置(文末具体展示)后,去除端口,如下:前端开发环境1.配置开发和生产的环境变量.env.development文件#API服务路径......
  • CentOS 7 安装 Nginx
    CentOS7安装Nginx一、更新存储库包列表$sudoyum-yupdate-y是可选参数。表示安装软件过程中如果提示用户输入y进行确认安装的话,则进行自动确认。二、安装epel软件包问题:什么是epel?回答:epel-release仓库是由Fedora项目创建的,旨在为RHEL和CentOS用户提......
  • NGINX 安装 SSL 证书 - 开启 HTTPS 访问
    在NGINX上安装SSL证书-开启HTTPS访问一、在你开始之前请确保您已下载证书文件。没有证书?请从https://www.sslforfree.com上申请90天免费证书。下载证书后,您应该有一个包含以下证书文件的ZIP:certificate.crtca_bundle.crtprivate.key二、上传证书文件首先,......
  • laravel:部署到nginx服务器(10.27.0)
    一,相关文档:https://learnku.com/docs/laravel/10.x/deployment/14840二,配置nginx1,站点文件server{listen80;#listen[::]:80;server_namedig.lhdtest.com;root/webdata/site/dig/public;add_headerX-Frame-Options"SAMEORIGIN";a......
  • Nginx安装lua模块
    前提已安装完成Nginx安装LuaJITwgethttp://luajit.org/download/LuaJIT-2.0.5.tar.gztar-zxvf LuaJIT-2.0.5.tar.gzcdLuaJIT-2.0.5makeinstallPREFIX=/usr/local/LuaJITecho"exportLUAJIT_LIB=/usr/local/LuaJIT/lib">>/etc/profileecho"expor......
  • Nginx Lua修改返回值
    调试lua脚本ngx.log(ngx.ERR,"xxx")日志会打印到/usr/local/nginx/logs/error.log修改返回值时避免内容被截断增加header_filter_by_lua'ngx.header.content_length=nil';注释后只返回原接口长度3,即ok\n。lua脚本默认必须放在/usr/local/nginx目录下,否则会找不到。mod......