nginx服务,nginx反向代理

(一)nginx

同apapche功能一样,基于http协议传输,提供web服务,用于搭建linux的web服务器。

1.安装过程:

(1)安装扩展源epel,有的话可不用安装;

-----yum clean all

-----yum install epel-release -y

(2)安装nginx

----yum install nginx -y

(3)写配置文件(写的配置以分号结尾)

-----vim /etc/nginx/nginx.conf

默认关键配置项:

root  /usr/share/nginx/html  默认根目录

location /  {

}

当location里面配置了root根目录及index时,根目录为location里面的root根目录,没有时是外边的root的根目录,如下:

location  /  {

root /var/www/html;

index  index.html;         (index.html为主页)

}

本操作采用默认配置,即根目录为/usr/share/nginx/html

-----mkdir /usr/share/nginx/html

在根目录下建a.txt以作为客户端的访问内容

------- vim /usr/share/nginx/html/a.txt

‘‘ hello,world !‘‘

(4)关闭Linux防火墙和selinux(一般在安装之前就把这步做好,布环境)

-----systemctl stop firewalld     关闭防火墙

-----systemctl  disable firewalld    开机也不启动防火墙

-----systemctl  enable firewalld   开机启动防火墙

关闭selinux     ------vim /etc/selinux/config

设置selinux=disable

------reboot重启

(5)重启nginx(配置有更改软件要读取需重启)

-----systemctl start nginx  启动nginx

-----systemctl  reload nginx   重新加载ngnix

-----systemctl enable nginx  开机启动nginx

-----systemctl status nginx   查看nginx状态

(6)客户端发起测试请求

在客户端的firefox游览器上输入http://(服务器的ip):80/a.txt,看是否可访问到a.txt的内容:“hello,world!”,如下:

http://192.168.72.132:80/a.txt   80为端口号

有问题时会报错:(404等数字叫做状态码)

404 not found  找不到内容      403  客户端没有权限

400开头的是客户端的问题   500开头的是服务端的问题

2.nginx服务实现的思路:

(1)用户在客户端输入网址:192.168.16.147:80/a.txt。(ip和端口定位服务器nginx软件)---------------------》(2)nginx (nginx读取自己的配置文件)-----------------》(3)nginx.conf-----------》(4)/usr/share/nginx/html 。(从配置文件中找到根目录在哪里)------------------------》(5))/usr/share/nginx/html/a.txt (从根目录找到a.txt) ----------------------》(6)服务端接到http协议包(打TCP头,打TP头,打以太网头传出去)

3.补充:

(1)检查端口号: telnet + 服务器IP

(2)nginx服务log   /var/log/nginx/     access.log     error.log

(3)动态查看log:    tail    -f   /var/log/nginx/access.log

(二)nginx反向代理

用nginx的反向代理做负载均衡(load  balancer),好比现在有4个nginx web服务器,名称分别为pythonweb,web1,web2,web3,当客户端访问服务器时,pythonweb把收到的访问请求分发给web1,web2和web3。pythonweb就是nginx的反向代理服务器,只分配活,不干活。web1,web2,web3是nginxweb服务器,老实地干着活。

1.nginx反向代理官方说明:

------>http://nginx.org/en

----->documentation  (右侧)

------>Using nginx as HTTP load balancer   (里面有负载均衡的三种算法和配置)

三种算法:

轮循;              最小链接调度(谁目前的惹怒我少就给谁分任务);          以IP地址分发请求(这个IP上次在A机器上,这次就分给A机器)

lb -----负载均衡

2.操作步骤:

(1)进入nginx.org/en官网,找到Using nginx as HTTP load balancer ,看官方配置文档;

(2)以pythonweb虚拟机为反向代理服务器,虚拟机web1,web2,web3作为接收访问请求的服务器,记住这四个虚拟机的IP;

(3) 写配置文件

---------vim /etc/nginx/nginx.conf

a. 在http中添加配置(可以在官网复制好再改一下)

upstream  pythonweb {                                    (upstream定义一组机器,pythonweb为组名)

serve  192.168.72.130;

serve  192.168.72.131;

serve  192.168.72.132;                        (web1,web2.web3的IP)

}

b.在serve下location中加 proxy_pass http://pythonweb,如下:

location   /   {

proxy_pass http://pythonweb

}

(4)分别将web1,web2,web3下/etc/nginx/html下index.html内容改为“web1”,“web2”,“web3”;

(5)在火狐游览器上登陆pythonweb的IP,按F5刷新,每刷新一次,内容有web1变web2变web3,证明生效了!

时间: 2024-08-01 22:47:02

nginx服务,nginx反向代理的相关文章

nginx是一个反向代理的软件

nginx只是一个反向代理的软件,和语言无关,理论上支持任何Web平台,当然http://Asp.net也不例外,http://51aspx.com就是http://Asp.net开发的,前端暴漏的是nginx Nginx和后端无关,他是HTTP传输过程中的一个中间层,负责将请求转发到他身后的应用服务器.对于客户端和最终的服务端,都是感知不到Nginx的存在的

Nginx 如何设置反向代理

网络结构如上图.可能你只有一个公网的Ip地址. 但是您的内网有个网站需要映射至外网.而又不想添加其它的非80端口.则你可以直接使用nginx来做反向代理即可.首先,配置nginx.conf文件. http { include mime.types; default_type application/octet-stream; client_max_body_size 8m; #############################################################

Nginx+Tomcat实现反向代理及动静分离

通常tomcat部署结构 通常tomcat前端是nginx或apache,后端都为tomcat,也就意味着无论前端是什么角色都是以代理的方式进行工作的 但是要注意的是如果基于nginx做反向代理,转发请求到tomcat的时候是基于http协议进行转发的 但注意的是tomcat的连接器有httpajp jk2 jserv 而如果基于nginx做转发的话只支持http做转发 而如果apache做代理转发的话,几乎常用协议都支持 但常用的连接类型都是ajp协议,因为ajp协议可以工作在二进制模式下,而

五、Nginx多Server反向代理配置

Nginx强大的正则表达式支持,可以使server_name的配置变得很灵活,如果你要做多用户博客,那么每个用户拥有自己的二级域名也就很容易实现了. server_name的匹配顺序 Nginx中的server_name指令主要用于配置基于名称虚拟主机,server_name指令在接到请求后的匹配顺序分别为: 1.准确的server_name匹配,例如: 1 server { 2 listen 80; 3 server_name www.ooxx.com; 4 ... 5 } 2.以*通配符开始

tomcat配置及基于nginx、apache反向代理tomcat

如今,基于Web的应用越来越多,传统的Html已经满足不了如今的需求.我们需要一个交互式的Web,于是便诞生了各种Web语言.如Asp,Jsp,Php等.当然,这些语言与传统的语言有着密切的联系,如Php基于C和C 语言,Jsp基于Java语言.Tomcat即是一个Jsp和Servlet的运行平台. Tomcat是一个免费的开源的Serlvet容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache,Sun和其它一些公司及个人共同开发而成.由于有了Sun的参与和支持,最新

Nginx多Server反向代理配置

Nginx强大的正则表达式支持,可以使server_name的配置变得很灵活,如果你要做多用户博客,那么每个用户拥有自己的二级域名也就很容易实现了. 下面我就来说说server_name的使用吧: server_name的匹配顺序 Nginx中的server_name指令主要用于配置基于名称虚拟主机,server_name指令在接到请求后的匹配顺序分别为: 1.准确的server_name匹配,例如: server { listen 80; server_name ssdr.info www.s

Centos7下Nginx+Tomcat配置反向代理,使用memcached解决session一致性问题

一.session一致性问题 使用集群方案解决网站高并发问题时,就会部署多台应用服务器.当用户第一次通过客户端(如:浏览器)访问服务器时,服务器会创建对应的session, 使用Nginx反向代理,假如用户A第一次访问站点,被反向代理到服务器一处理,服务器一创建对应sessionA记录信息,用户A再次访问站点时,被反向代理到服务二处理, 而服务器二没有记录用户A的session信息,就会新创建sessionB,导致用户A之前操作丢失. 我们可以通过让多个服务器统一到同一个地方新建session和

linux+apache+nginx实现,反向代理动静分离

在我们开发的过程中,一定会遇到,负载均衡方面的问题.下面我们,做一个小例子:使用nginx+apache实现反向代理,动静分离. 这里apache.php.nginx的安装就不做赘述了,不懂的朋友可以看看我其他的文章,或者去百度搜索了解一下. 现在,我们的电脑上有apache.nginx.php,其中php为apache服务. 我们想要实现的是,当请求发送到nginx的时候,nginx会去判断是不是php请求,如果是,那么将php请求反向分发给apache服务器. 其实,我们利用nginx要实现

Nginx安装和反向代理配置

Nginx安装和反向代理配置 Nginx安装需要一些准备工作. 安装gcc等 yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel 还需要安装pcre,PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 Perl兼容的正则表达式库. yum -y install pcre 下载Nginx源码包,这里选择是1.7.8版本.并且解压缩,并且编译 wge

nginx+tomcat实现反向代理的负载均衡

nginx+tomcat实现反向代理的负载均衡 安装java环境 server12: [[email protected] ~]# sh jdk-6u32-linux-x64.bin [[email protected] ~]# mv jdk1.6.0_32/ /usr/local/ [[email protected] ~]# cd /usr/local/ [[email protected] local]# mv jdk1.6.0_32/ java [[email protected] lo