nginx反向代理

Linux--部署Django项目

我是研究僧i 提交于 2019-12-03 23:42:56
简单部署 1.安装虚拟环境virtualenvwrapper,创建虚拟环境目录,进入虚拟环境,我的虚拟环境目录叫venv2 [root@HH ~]# workon venv2 (venv2) [root@HH ~]# ls 2.cd进入到项目目录里面,安装项目必须的模块,例如django,djangorestframework,pymysql等等。 3.修改settings.py的配置文件 修改数据库配置 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'mydjango', #数据库名 'HOST': '127.0.0.1', #这里服务器的ip地址 'PORT': 3306, #端口 'USER': 'root', #用户名 'PASSWORD': 'zou123456', #用户密码 } } 更改允许主机 ALLOWED_HOSTS = ['*'] 关闭debug debug=True 4.进入数据库创建mydjango数据库 5.启动项目 python manage.py runserver 0.0.0.0:8008 注意点:检查mysql数据库是否启动,启动时加0.0.0.0,关闭防火墙,如果时云服务器,检查安全组 什么是wsgi WSGI是web服务器网关接口,它是一个规范

nginx 反向代理非80端口时 URL跳转丢失端口的解决方案

核能气质少年 提交于 2019-12-03 23:41:12
配置nginx反向代理时遇到一个问题,当设置nginx监听80端口时转发请求没有问题。但一旦设置为监听其他端口,就一直跳转不正常; 如,访问欢迎页面时应该是重定向到登录页面,在这个重定向的过程中端口丢失了。【例: www.xxx.cn:13000/jenkins ----》 www.xxx.cn/jenkins】 这里给出一个简短的解决方案,修改nginx的配置文件。 一、配置文件 # the 90 port server { listen 90; server_name zxy1994.cn; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host:$server_port; #这里是重点,这样配置才不会丢失端口 location / { proxy_pass http://127.0.0.1:9001; } location = /50x.html { root html; } } 二、产生原因 nginx没有正确的把端口信息传送到后端,没能正确的配置nginx,下面这行是关键 proxy

反向代理实例

吃可爱长大的小学妹 提交于 2019-12-03 22:59:51
1.安装tomcat 下载安装包; 上传到linux; tar -xvf解压; firewall-cmd 开放端口; 到解压目录bin目录下执行./startup.sh运行; 2.实现思路 预期效果:在浏览其中输入www.123.com跳转到tomcat主页面; linux对外暴露的是ngnix,不直接访问tomcat,而是需要访问ngnix,再由ngnix来转发请求; 1)对应域名和ip地址 域名和ip地址的映射关系在window目录下的host文件中配置; 如果没有配置会从dns中查找; 因为没有域名,所以修改host文件来配置映射; host文件地址: C:\Windows\System32\drivers\etc\hosts 加上一行 前面是linux服务器的ip地址,可以用ifconfig命令得到; 后面是自定义的域名; 3.配置nginx vi打开配置文件: vi /usr/local/nginx/conf/nginx.conf 找到server块,做修改: 将server_name改为linux服务器的ip地址; 在location中添加 proxy_pass http://127.0.0.1:8080,表示请求是转发到本机的8080端口; server { listen 80; server_name 192.168.10.112; location / {

获取用户的真实ip

回眸只為那壹抹淺笑 提交于 2019-12-03 18:42:09
常见的坑有两个: 一、获取的是内网的ip地址。在nginx作为反向代理层的架构中,转发请求到php,java等应用容器上。结果php获取的是nginx代理服务器的ip,表现为一个内网的地址。php获取REMOTE_ADDR就是这样一个情况(内网地址)。 二、获取的是攻击者伪造的ip地址。攻击者可以随便伪造一个头部信息,随便填写一个ip放到头部发过来,php获取到HTTP_CLIENT_IP就是这样一个情况。伪造的ip,导致我们数据库存储是假的ip,无从真实去判断攻击者的来源。比如批量注册帐号的注册ip,登录的ip等。 为避免伪造,不要使用discuz原来的获取ip函数,里面的判断优先级会使得攻击者容易伪造ip。 php代码: function getIP() { if (getenv("HTTP_X_FORWARDED_FOR")) { //这个提到最前面,作为优先级,nginx代理会获取到用户真实ip,发在这个环境变量上,必须要nginx配置这个环境变量HTTP_X_FORWARDED_FOR $ip = getenv("HTTP_X_FORWARDED_FOR"); } else if (getenv("REMOTE_ADDR")) { //在nginx作为反向代理的架构中,使用REMOTE_ADDR拿到的将会是反向代理的的ip,即拿到是nginx服务器的ip地址

nginx与apache的区别

眉间皱痕 提交于 2019-12-03 17:37:28
1、nginx相对于apache的优点: 轻量级,同样起web 服务,比apache占用更少的内存及资源抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能高度模块化的设计,编写模块相对简单社区活跃,各种高性能模块出品迅速啊 apache 相对于nginx 的优点: rewrite ,比nginx 的rewrite 强大,动态页面,模块超多,基本想到的都可以找到,少bug ,nginx 的bug 相对较多,超稳定 存在就是理由,一般来说,需要性能的web 服务,用nginx 。如果不需要性能只求稳定,那就apache 吧。后者的各种功能模块实现得比前者,例如ssl 的模块就比前者好,可配置项多。这里要注意一点,epoll(freebsd 上是 kqueue )网络IO 模型是nginx 处理性能高的根本理由,但并不是所有的情况下都是epoll 大获全胜的,如果本身提供静态服务的就只有寥寥几个文件,apache 的select 模型或许比epoll 更高性能。 2、作为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率,这点使 Nginx 尤其受到虚拟主机提供商的欢迎。在高连接并发的情况下,Nginx是Apache服务器不错的替代品:

nginx

喜夏-厌秋 提交于 2019-12-03 16:44:05
Nginx是什么? Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。 Nginx是一款轻量级的WEB服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强。 Nginx重要特性 支持高并发:能支持几万并发连接(特别是静态小文件业务环境) 资源消耗少。 可以做HTTP反向代理及加速缓存,即负载均衡功能,内置对RS节点服务器健康检查功能,这相当于专业的Haproxy软件或LVS的功能。 具备Squid等专业缓存软件等的缓存功能。 支持异步网络I/O事件模型epoll(linux2.6+)。 Nginx软件的主要企业功能应用 (1)作为Web服务软件Nginx是一个支持高性能,高并发的Web服务软件,它具有很多优秀的特性,作为Web服务器,与Apache相比,Nginx能够支持更多的并发连接访问,但占用的资源更少,效率更高,在功能上也强大了很多,几乎不逊色于Apache。 (2)反向代理或负载均衡服务在反向代理或负载均衡服务方面,Nginx可以作为Web服务,PHP等动态服务及Memcached缓存的代理服务器,它具有类似专业反向代理软件(如Haproxy)的功能,同时也是一个优秀的邮件代理服务软件

yum安装nginx

混江龙づ霸主 提交于 2019-12-03 15:00:58
啥是nginx ☆☆☆☆ 官方网址 ☆☆☆☆ Nginx的相关概念: 反向代理: ———————————————————————————————————————————————————————————————————————————————————— 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。 安装nginx 下载: wget https://nginx.org/download/nginx-1.16.1.tar.gz 编译安装: 来源: https://www.cnblogs.com/Mercury-linux/p/11801312.html

前后端分离是什么操作

丶灬走出姿态 提交于 2019-12-03 14:56:10
转 前后端分离已成为互联网项目开发的业界标准使用方式,通过nginx+tomcat的方式(也可以中间加一个nodejs)有效的进行解耦,并且前后端分离会为以后的大型分布式架构、弹性计算架构、微服务架构、多端化服务(多种客户端,例如:浏览器,车载终端,安卓,IOS等等)打下坚实的基础。这个步骤是系统架构从猿进化成人的必经之路。 核心思想是前端html页面通过ajax调用后端的restuful api接口并使用json数据进行交互。 在互联网架构中,名词解释: Web服务器:一般指像nginx,apache这类的服务器,他们一般只能解析静态资源。 应用服务器:一般指像tomcat,jetty,resin这类的服务器可以解析动态资源也可以解析静态资源,但解析静态资源的能力没有web服务器好。 一般都是只有web服务器才能被外网访问,应用服务器只能内网访问。 一、开发人员分离 以前的JavaWeb项目大多数都是Java程序员又当爹又当妈,又搞前端,又搞后端。 随着时代的发展,渐渐的许多大中小公司开始把前后端的界限分的越来越明确,前端工程师只管前端的事情,后端工程师只管后端的事情。正所谓术业有专攻,一个人如果什么都会,那么他毕竟什么都不精。 大中型公司需要专业人才,小公司需要全才,但是对于个人职业发展来说,小编建议是分开。 1.对于后端Java工程师: 把精力放在Java基础,设计模式

经典必会款!服务端高并发分布式架构演进之路

☆樱花仙子☆ 提交于 2019-12-03 14:38:29
1. 概述 本文以淘宝作为例子,介绍从一百个并发到千万级并发情况下服务端的架构的演进过程,同时列举出每个演进阶段会遇到的相关技术,让大家对架构的演进有一个整体的认知,文章最后汇总了一些架构设计的原则。 2. 基本概念 在介绍架构之前,为了避免部分读者对架构设计中的一些概念不了解,下面对几个最基础的概念进行介绍: 分布式 系统中的多个模块在不同服务器上部署,即可称为分布式系统,如 Tomcat和数据库分别部署在不同的服务器上,或两个相同功能的Tomcat分别部署在不同服务器上 高可用 系统中部分节点失效时,其他节点能够接替它继续提供服务,则可认为系统具有高可用性 集群 一个特定领域的软件部署在多台服务器上并作为一个整体提供一类服务,这个整体称为集群。如 Zookeeper中的Master和Slave分别部署在多台服务器上,共同组成一个整体提供集中配置服务。在常见的集群中,客户端往往能够连接任意一个节点获得服务,并且当集群中一个节点掉线时,其他节点往往能够自动的接替它继续提供服务,这时候说明集群具有高可用性 负载均衡 请求发送到系统时,通过某些方式把请求均匀分发到多个节点上,使系统中每个节点能够均匀的处理请求负载,则可认为系统是负载均衡的 正向代理和反向代理 系统内部要访问外部网络时,统一通过一个代理服务器把请求转发出去,在外部网络看来就是代理服务器发起的访问

Nginx学习

时光怂恿深爱的人放手 提交于 2019-12-03 12:09:42
一、Nginx三大功能:反向代理、动静分离、负载均衡 二、反向代理   A、proxy_pass: http://.... 三、负载均衡   A、基本配置     1. http块       upstream 名字 {         服务器列表...       }     2. location块       location / {         proxy_pass:http://名字       } 四、动静分离   A、基本配置     1. location /文件夹名/ {       root: /上一级文件夹名/,       autoindex on //是否显示文件索引       index: ...     } 五、高可用   A、准备工作     1. 两台服务器     2. 都安装nginx     3. 都安装keepalived 来源: https://www.cnblogs.com/DjanFey/p/11795704.html