实现效果:使用 Nginx
反向代理,根据访问的路径跳转到不同端口的服务中,Nginx
监听端口为 9001
访问http://192.168.17.129/edu/
直接跳转到 127.0.0.1:8080
访问http://192.168.17.129/vod/
直接跳转到 127.0.0.1:8081
第一步,需要准备两个 tomcat
,一个 8080
端口,一个 8081
端口,并准备好测试的页面
第二步,修改 nginx
的配置文件,在 http
块中配置 server
server {
listen 9001;
server_name 192.168.17.129;
location ~ /edu/ {
proxy_pass http://127.0.0.1:8080
location ~ /vod/ {
proxy_pass http://127.0.0.1:8081
根据上面的配置,当请求到达 Nginx 反向代理服务器时,会根据请求路径不同进行分发到不同的服务上。
实验结果:
补充:location 指令说明
该指令用于匹配 URL
, 语法如下:
location [ = | ~ | ~* | ^~] uri {
=
:用于不含正则表达式的 uri
前,要求请求字符串与 uri
严格匹配,如果匹配成功,就停止继续向下搜索并立即处理该请求~
:用于表示 uri
包含正则表达式,并且区分大小写~*
:用于表示 uri
包含正则表达式,并且不区分大小写^~
:用于不含正则表达式的 uri
前,要求 Nginx
服务器找到标识 uri
和请求。字符串匹配度最高的 location
后,立即使用此 location
处理请求,而不再使用 location
块中的正则 uri
和请求字符串做匹配。
注意:如果 uri 包含正则表达式,则必须要有 ~ 或者 ~* 标识
Nginx完整配置文件
#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 {
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;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
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;
# }
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
(完整拷贝上面的内容server_name www.*****.com; 这里面的域名即是来访域名
proxy_pass http://192.168.45.1:8045; 这里面的域名(http://192.168.45.1:8045)即是内部跳转的地址,将该内容拷贝多份实现不同来访域名的跳转)
3.找到D:\nginx\conf下nginx.conf文件用记事本打开
在文段末尾大括号前加上
include proxy.conf;(就是加载刚刚新建的那个文件(注意路径))
4.进入cmd
进入D盘: d:
进到nginx文件夹下:cd nginx
启动nginx.exe:start nginx
Cmd窗口会闪一下
进程里面会多了个
浏览器里面输入:http://127.0.0.1 将出现:
Nginx的欢迎界面。
nginx -s stop // 停止nginx
nginx -s reload // 重新加载配置文件
nginx -s quit // 退出nginx
nginx-1.3.9.zip(这个版本)
(1分钟搞定只是夸张说法啦,给你增加信心的啦,真正的操作起来,因人而异,没搞定的耐心再试试,自己xp系统亲测成功,不喜欢的无拍砖哦,实在搞不定的加我qq852208555 一起研究下 谢谢!)
三台主机:nginx主机,hostname: master.lansgg.com IP: 192.168.10.128
apache主机,hostname: client1.lansgg.com IP: 192.168.10.129
一、nginx 地址重定向
二、nginx 反向代理
1、地址重定向:是指当使用者浏览某个网址时,将他导向到另一个网址的技术。常用在把一串很长的网址,转成较短的网址。因为当要传播某网站时,常常因为网址太长,不好记忆;又有可能因为换了网路的免费网页空间,网址又必须要变更,不知情的使用者还以为
由于公司内网有多台服务器的http服务要映射到公司外网静态IP,如果用路由的端口映射来做,就只能一台内网服务器的80端口映射到外网80端口,其他服务器的80端口只能映射到外网的非80端口。非80端口的映射在访问的时候要域名加上端口,比较麻烦。并且公司入口路由最多只能做20个端口映射。
肯定以后不够用。
然后发现可以在内网搭建一个nginx反向代理服务器,将nginx反向代理服务器的80映射到外网IP的80,这样指向到公司外网IP的域名的HTTP请求就会发送到nginx反向代理服务器,利用nginx反向代理将不同域名的请求转发给内网不同机器的端口,就起到了“根据域名自动转发到相应服务器的特定端
大多数的Nginx安装指南告诉你如下基础知识——通过apt-get安装,修改这里或那里的几行配置,好了,你已经有了一个Web服务器了!而且,在大多数情况下,一个常规安装的nginx对你的网站来说已经能很好地工作了。然而,如果你真的想挤压出nginx的性能,你必须更深入一些。在本指南中,我将解释Nginx的那些设置可以微调,以优化处理大量客户端时的性能。需要注意一点,这不是一个全面的微调指南。这是一个简单的预览——那些可以通过微调来提高性能设置的概述。你的情况可能不同。
基本的(优化过的)配置
我们将修改的唯一文件是nginx.conf,其中包含Nginx不同模块的所有设置。你应该能够在服务器的
IIS7.5下同IP多域名配置SSL,
IIS 7.5 以下版本不支持多域名共用443端口 SSL 服务,采用nginx 单独处理来自443端口的请求,从而实现多域名 SSL
附件包含,图文设置nginx,
nginx免安装包,可直接使用,已支持SNI(Server Name Indication)
反向代代理:外网用户想访问内网主机时,需要借助反向代理实现
外网用户请求—–>反向代理服务器—->公司内部服务器(私网地址)
正向代理:内网用户想访问外网网站时,需要借助正向代理实现
内部用户请求—>正向代理服务器——>互联网外网环境
网站集群概念:完成相同工作一群服务器 web01 web02
nginx 提供反向代理服务,日常开发过程中有时候我们需要使用nginx 作为代理服务根据url的不同去访问不同的服务器或者不同端口,如下提供两种方案。
一、location作用
location作用:根据用户请求的URL来执行
如果location 后面没有
location配置中:
当用户请求“/”时,将匹配configuration A
当用户请求“/index
2 反向代理机制说明
2.1 反向代理
反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。反向代理服务器通常可用来作为Web加速,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率。
2.2 正向代理
2.2.1 正向代理的说明
正向代理,意思是一个位于客
1. 编辑 Nginx 配置文件,例如 `/etc/nginx/nginx.conf`。
2. 在 `http` 块中添加 `server` 块,用于配置反向代理,例如:
http {
# ...
server {
listen 80;
server_name your-domain.com;
location / {
proxy_pass http://backend-server-ip:backend-server-port;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
3. 在 `server` 块中使用 `listen` 指令指定监听的端口和域名。
4. 在 `location /` 块中使用 `proxy_pass` 指令指定后端服务器的地址和端口。
5. 可以使用 `proxy_set_header` 指令设置代理请求的头信息,例如设置 `Host` 和 `X-Real-IP` 头。
需要注意的是,将 `backend-server-ip` 和 `backend-server-port` 替换为实际的后端服务器的 IP 地址和端口。另外,如果有其他需要的配置,也可以在 `location /` 块中添加。
保存配置文件并重新加载 Nginx 配置,例如执行命令:`nginx -s reload`。
这样配置后,当访问 Nginx 服务器的域名时,Nginx 将会将请求转发到指定的后端服务器上进行处理。