Nginx安装及配置反向代理
本片博客记录在ubuntu16下安装nginx,以及如何实现负载均衡
安装nginx
- 如果是新机器,安装相关依赖环境
sudo apt install build-essential
sudo apt install libtool
sudo apt install libpcre3 libpcre3-dev
sudo apt install zlib1g-dev
sudo apt-get install openssl libssl-dev
如果没有依赖环境,编译的时候会报下面的错
make: *** No rule to make target 'build', needed by 'default'. Stop.
2 下载nginx 到虚拟机
当然我是直接通过filezilla扔给虚拟机的
3 解压,顺道删除压缩包
tar xvf XXXrm -rf XXX
4 进入nginx目录里面,指定安装的目录
指定安装在 /opt/nginx目录下(一般都把自己的软件安装在opt下)
./configure --prefix=/opt/nginx --sbin-path=/usr/bin/nginx
5 编译安装
make && make install
6 启动
nginx
ok ,现在可以去访问虚拟机的80端口,成功看到nginx的 欢迎页
7 停止
nginx -s stop
nginx号称7x24小时不停止,所以当我们修改配置文件之后,重新加载nginx,执行下面的脚本就好了
nginx -s reload
反向代理
1. 什么是正向代理?:
先说一下啥是正向代理,其实我们用的vpn本质上就是正向代理,因为一堵墙围着我们国家,所以我们通过浏览器访问国外的谷歌时请求被强了,根本出不去,那么我们怎么请求呢?vpn出现了,他就是一种正向代理,我们把我们的请求发送给vpn所在的服务器,比如它在香港,让他帮我们转发给谷歌,谷歌接收到请求后把数据回显给vpn,vpn发送给我们,这其实就是一个正向代理的过程
- 正向代理特点: 代理服务器起到一个转发请求的作用,但是从一开始它就很明确的知道自己要去访问哪台服务器
2. 什么是反向代理?
- 同样它的工作也是负责转发;来自客户端的请求,但是当客户端的请求发过来之后,一开始它是不清楚往哪里转发的,他需要根据配置去解析,然后再定位,转发
3. 为什么要使用反向代理?
现在流行的微服务架构,拥有相同功能的服务,通常需要做成集群,那么问题来了,我们的浏览器默认是80端口,多个功能相同的应用分别占用多个不同的端口,那谁来占用80呢?nginx通过反向代理优秀的解决了这个问题
{% asset_img 1.jpg my first image %}
4. nginx如何实现反向代理
通过配置实现
nginx的主配置文件名叫
nginx.config
它在nginx的安装目录下的config目录下面
#user nobody;
worker_processes 1;#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;#pid logs/nginx.pid;events {worker_connections 1024;
}#http块主要有三个作用域, http server location
http { #可以嵌套多个server ,配置代理,缓存,日志,等绝大多数功能,和第三方模块配置include mime.types; #文件扩展名和文件类型映射表default_type application/octet-stream; # 默认文件类型#log_format main '$remote_addr - $remote_user [$time_local] "$request" '# '$status $body_bytes_sent "$http_referer" '# '"$http_user_agent" "$http_x_forwarded_for"';#access_log logs/access.log main;# 开启高效文件传输模式,这个指令,指定了nginx是否调用sendfile函数传输文件,对于普通的应用设为on ,如果用来进行下载等IO重负载应用可设为offsendfile on;#tcp_nopush on; #防止网络阻塞#keepalive_timeout 0;keepalive_timeout 65; # 长连接超时时常,单位秒#gzip on;# 负载均衡
# upstream XXX.com{
# upstream负载均衡块, weight表示权重, 值越大,被分配到的几率就越大
# server 192.168.80.121:80 weight=3;
# server 192.168.80.121:80 weight=3;
# server 192.168.80.121:80 weight=3;
#}#server配置虚拟主机的相关参数server { listen 80; # 监听端口server_name localhost; # 监听地址,可以采用域名加多个空格隔开,如果匹配不到我们在浏览器输入的域名.默认走 localhost, 然后location到nginx的欢迎页#charset koi8-r;# 本虚拟机的访问日志 #access_log logs/host.access.log main;# location 配置请求的路由,和各种页面的处理情况location / {root html;index index.html index.htm; # 默认页面}#error_page 404 /404.html;# redirect server error pages to the static page /50x.html#error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}# proxy the PHP scripts to Apache listening on 127.0.0.1:80##location ~ \.php$ {# proxy_pass http://127.0.0.1;#}# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000##location ~ \.php$ {# root html;# fastcgi_pass 127.0.0.1:9000;# fastcgi_index index.php;# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;# include fastcgi_params;#}# deny access to .htaccess files, if Apache's document root# concurs with nginx's one##location ~ /\.ht {# deny all;#}}# another virtual host using mix of IP-, name-, and port-based configuration##server {# listen 8000;# listen somename:8080;# server_name somename alias another.alias;# location / {# root html;# index index.html index.htm;# }#}# HTTPS server##server {# listen 443 ssl;# server_name localhost;# ssl_certificate cert.pem;# ssl_certificate_key cert.key;# ssl_session_cache shared:SSL:1m;# ssl_session_timeout 5m;# ssl_ciphers HIGH:!aNULL:!MD5;# ssl_prefer_server_ciphers on;# location / {# root html;# index index.html index.htm;# }#}}
我们要实现反向代理就是要
- 新增我们自己的server
server {listen 80;server_name 浏览器可能访问的域名1;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;location / {proxy_pass http://127.0.0.1:9001; # 转发路径proxy_connect_timeout 600;proxy_read_timeout 600;}}server {listen 80;server_name 浏览器可能访问的域名2;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;location / {proxy_pass http://127.0.0.1:10011; # 转发路径proxy_connect_timeout 600;proxy_read_timeout 600;}}
nginx 通过监听80端口 进而监听我们修改后的域名,成功匹配后呢,通过location转发到我们自定义的路径
转载于:https://www.cnblogs.com/ZhuChangwu/p/11150437.html
Nginx安装及配置反向代理相关推荐
- Nginx安装/负载均衡/反向代理配置与调优
[Nginx安装] Linux下直接使用包管理安装 sudo apt-get install nginx 使用whereis命令查看安装位置 whereis nginx #sbin下代表nginx可执 ...
- nginx 1.16 配置反向代理,http,https,ssl
需求 之前云服务上仅部署了门户网站,后来要做小程序开发,还有各项目网站.之前是通过域名+端口访问, 现改为启用二级域名,共用公网IP,80(http).443(https)端口,通过nginx按域名做 ...
- 【笔记】openwrt - nginx编译、配置反向代理(https下netdata不显示)
文章目录 # 完整交叉编译 # 完整交叉编译ssl # SDK编译 # 配置反向代理 # 群晖内置nginx配置 # 完整交叉编译 参考:https://servertesa.wordpress.co ...
- Nginx安装手册,反向代理,负载均衡,keepalived高可用
Nginx安装手册 附件在下面 看附件中的 pdf 中的资料写的比较清晰: nginx安装环境 nginx是C语言开发,建议在linux上运行,本教程使用Centos6. ...
- 带你了解什么是Nginx(实操反向代理-负载均衡)
文章目录 一.前言 ①什么是Nginx? ②服务中为什么要使用Nginx原因? 二.安装Nginx 1.介绍 2.安装 ①在Linux系统安装nginx ②上传并解压到/usr/local/目录下 ③ ...
- 【Asp.net Core】在 Linux 子系统中安装 nginx 并配置反向代理
上一篇鸟文中,老周已经介绍过在 Ubuntu 子系统中安装 dotnet-sdk 的方法,本文老周给大伙伴们说说安装 nginx 服务,并配置反向代理.同样,老周假设你从来没有用过 Linux,所以老 ...
- Nginx 概述 如何正规安装 静态网页配置 反向代理配置 负载均衡配置
目录 1. 基本概念 1.1 Nginx初步认识 1.2 正向/反向代理 1.3 域名和IP 2. Nginx安装和配置 2.1 安装Nginx 2.2 配置 3. Nginx的使用 3.1 部署静态 ...
- 如何在 FreeBSD 10.2 上安装 Nginx 作为 Apache 的反向代理
如何在 FreeBSD 10.2 上安装 Nginx 作为 Apache 的反向代理 Nginx 是一款自由开源的 HTTP 和反向代理服务器,也可以用作 POP3/IMAP 的邮件代理服务器.Ngi ...
- apache 反向代理_通过 Apache 与 Nginx 配置 AJP 配置反向代理
↑ 点击上面 "时代Java"关注我们, 关注新技术,学习新知识! 前言 目前,随着公有云的出现,一些大型的服务提供商将很多的基础服务以公有云的形式发布出来,而企业则可以使用这些基 ...
最新文章
- 人工智能用哪个语言好 选择Python语言怎么样
- Android赚钱的方法--界面嵌入有米广告(持续关注中)
- hdu5438(2015长春网络赛B题)
- HTML5中拖动功能的添加属性,html5中可拖动dragable属性及其他成员的讲解
- ConvolverNode
- ssms只有空白解决方案_SSMS中的解决方案和项目概述
- 【每日算法Day 71】面试官想考我这道位运算题,结果我给出了三种解法
- 学一门计算机语言大体的过程,学习一门新编程语言的6个步骤
- SQL 语言特点、功能和数据类型
- linux卸载设备驱动命令,Linux设备驱动程序加载/卸载方法 insmod和modprobe命令
- 一阶惯性传感器的快速跟踪性能实现
- 嵌入式Linux开发环境搭建
- 比例电磁阀(零)液压知识
- jdbc——mysql学习
- 解决IDEA报Unmapped Spring configuration files found.Please configure Spring facet
- 统计学基础(四)—卡方检验怎么用?
- 【Linux】虚拟地址空间 --- 虚拟地址、空间布局、内存描述符、写时拷贝、页表…
- 倍福TwinCAT3导入TwinCAT2项目的方法
- 计算机附近组件的安装方法,在计算机上安装组件
- create_calib_data算子说明
热门文章
- android 文件删除命令大全,Android中删除sdcard里文件的命令
- vb html table,VB6.0 如何是用 datatable
- python画圆填色橙色_基于TPC-C基准的Python ORM的性能测试详解
- 某程序员9点离岗被主管罚款200,写bug扣光主管年终奖?
- 前端系统化学习【JS篇】:(四-3)基本数据类型之Boolean篇
- 自学前端很难吗?只要你足够努力,高中学历也能获得offer
- 不是计算机专业,哪个专业更适合学习web前端
- 有人说,30岁是程序员的一个末日期,写给30岁的程序员,到底该怎么做呢
- Java 中的接口有什么作用?为什么不直接用类?
- 郑州轻工业大学c语言考试题库,2016年郑州轻工业学院计算机与通信工程学院C语言程序设计考研复试题库...