nginx配置文件+本地测试请求转发到远程服务器+集群
1 在本地测试1
众所周知,nginx是一个反向代理的服务器,主要功能即为实现负载均衡和动静分离。在别的我别的文章有详细的nginx(Windows)相关介绍教程。
由于自己安装的nginx在本地的计算机上,想实现对nginx.conf 配置文件的修改实现转发到远程服务器,见下图标记处,为我在配置文件添加的内容,
首先在本地启动nginx【即在nginx根目录双击nginx.exe ,可以在任务管理器中查看是否有nginx.exe进程,如果有说明开启成功】,然后根据上图中的location,在浏览器访问http://localhost/ap/ 【因为是本地且server_name = localhost,如果是在远程服务器使用nginx,则localhost改为服务器对应的域名或ip地址】,会请求转发到百度的首页。如果是想访问到上图中http://XXXX.pub:20180/wlsweb, 则需要修改配置location = /ap/wlsweb/ 或location /ap/wlsweb/【经我自行测试 = 可有可不有】。且后面的/不能省去。注意修改完配置文件,关闭nginx的进程,重新启动nginx,配置爱文件才会重新加载生效。最后说一点,对应nginx的启动和关闭也有想过命令,有兴趣的可以网上查询相关命令进行操作。
2 本地测试2
在本地没有域名的时候,可以修改本地系统文件进行域名和ip地址的配置进行虚拟。
1)打开电脑磁盘在系统的目录下找到hosts文件,我的是在C:\Windows\System32\drivers\etc目录下,你的应该在X:\Windows\System32\drivers\etc下。
打开hosts文件在其下面添加域名和ip地址,由于是虚拟的,域名可以自行拟定,我是写的xiha.com ,当然你可以haha.com等,对于ip地址的添加是计算机连接网络的ip地址,打开win+r组合件运行输入cmd进入dos命令窗口输入ipconfig进行查找。具体内容看下图。
我在hosts文件中添加的内容为10.23.57.227 xiha.com.
2)nginx的相关配置文件。配置文件是在nginx根目录下的conf文件夹下的nginx.conf文件。内容如下:
#user nobody;
worker_processes ; #error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info; #pid logs/nginx.pid; events {
worker_connections ;
} 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 ;
keepalive_timeout ; #gzip on;
upstream tserver{
server 10.23.57.227:8080;#localhost也可以 注意10.23.57.227 为电脑连接外网的ip地址。
#server 10.23.57.227:8080/aaa/index.html/
}
server {
listen 80;
erver_name xiha.com;
location / {
index index.html index.htm;
proxy_pass http://tserver;#代理,转发到集群;
}
}
server {
listen ;
server_name localhost; #charset koi8-r; #access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
proxy_pass http://tserver;#代理,转发到集群,优先执行proxy_pass;
}
location /ap/ {
#proxy_pass http://sandbox.criot.zhangda.pub:28180/wlsweb/;
proxy_pass https://www.baidu.com/;
} #error_page /.html; # redirect server error pages to the static page /50x.html
#
error_page /50x.html;
location = /50x.html {
root html;
} # proxy the PHP scripts to Apache listening on 127.0.0.1:
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:;
# 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 ;
# listen somename:;
# server_name somename alias another.alias; # location / {
# root html;
# index index.html index.htm;
# }
#} # HTTPS server
#
#server {
# listen 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;
# }
#} }
上面配置文件中的红色部分是我在原配置文件上所添加的 内容,对于集群的配置可以配置多,个反向代理服务器也可也配置多个。
对于集群的配置:
upstream tserver{
server 10.23.57.227:8080;#localhost也可以 注意10.23.57.227 为电脑连接外网的ip地址。
#server 10.23.57.227:8080/aaa/index.html/
}
其中的tserver名字也可以自行拟定,但是需要与下面红色标记处的proxy_pass值一样。经测试,server 10.23.57.227:8080/aaa/index.html/这样的格式不行,只支持ip地址+端口号。
反向代理的配置 :
server {
listen ;
erver_name xiha.com;
location / {
index index.html index.htm;
proxy_pass http://tserver;#代理,转发到集群;
}
}
对于nginx.conf可以配置多个server和upstream,我配置了2个server同时监听80端口,当在nginx启动的时候,访问server_name:localhost 和 xiha.com,都成功转发到
10.23.57.227:8080,成功访问到tomcat页面,因为我本地端口8080是对应的Tomcat,因此要确保tomcat服务启动。见下图,成功访问到Tomcat。当你出现不同的错误的时候,要去看目录logs文件夹下error.log文件中的内容。
nginx配置文件+本地测试请求转发到远程服务器+集群的更多相关文章
- 微信内嵌浏览器sessionid丢失问题,nginx ip_hash将所有请求转发到一台机器
现象微信中打开网页,图形验证码填写后,经常提示错误,即使填写正确也会提示错误,并且是间歇性出现. 系统前期,用户使用主要集中在pc浏览器中,一直没有出现这样的问题.近期有部分用户是在微信中访问的,才出 ...
- 10分钟学会windows中iis搭建服务器集群实现负载均衡和nginx代理转发
前言 我们之前聊过 10分钟搭建服务器集群--Windows7系统中nginx与IIS服务器搭建集群实现负载均衡:https://www.cnblogs.com/xiongze520/p/103087 ...
- 本地idea开发mapreduce程序提交到远程hadoop集群执行
https://www.codetd.com/article/664330 https://blog.csdn.net/dream_an/article/details/84342770 通过idea ...
- Windows系统 本地文件如何复制到远程服务器
很多人在使用远程服务器的时候往往要将本地的文件传输到远程服务器内,方法有很多种,下面介绍下如何使用Windows自带的远程桌面连接程序将文件复制到远程服务器内. 1.首先,点击windows开始按钮, ...
- nginx 的安装、优化、服务器集群
一.安装 下载地址:http://nginx.org 找到 stable 稳定版 安装准备:nginx 依赖于pcre(正则)库,如果没有安装pcre先安装 yum install pcre pcr ...
- Nginx详解-服务器集群
Nginx是什么 代理服务器:一般是指局域网内部的机器通过代理服务器发送请求到互联网上的服务器,代理服务器一般作用在客户端.应用比如:GoAgent,FQ神器. 一个完整的代理请求过程为:客户端首先 ...
- Nginx+Keepalived+Tomcat高可用负载均衡,Zookeeper集群配置,Mysql(MariaDB)搭建,Redis安装,FTP配置
JDK 安装步骤 下载 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html rpm ...
- nginx+apache+php+mysql服务器集群搭建
由于需要搭建了一个基本的服务器集群.具体的配置方案先不说了,到有时间的时候再介绍.下面介绍下整 个方案的优点. 我总共准备了四台阿里云的主机,架设分别是A,B1,B2,C,A在集群的最前面,B1和B2 ...
- nginx+tomcat+memcached搭建服务器集群及负载均衡
在实际项目中,由于用户的访问量很大的原因,往往需要同时开启多个服务器才能满足实际需求.但是同时开启多个服务又该怎么管理他们呢?怎样实现session共享呢?下面就来讲一讲如何使用tomcat+ngin ...
随机推荐
- CF896C Willem, Chtholly and Seniorious(珂朵莉树)
中文题面 珂朵莉树的板子……这篇文章很不错 据说还有奈芙莲树和瑟尼欧里斯树…… 等联赛考完去学一下(逃 //minamoto #include<bits/stdc++.h> #define ...
- Reduction operations
Reuction operations Reduction operations A reduction operations on a tensor is an operation that red ...
- Android Studio编写运行测试纯java代码可带main()函数
问题 小伙伴们在做安卓项目的时候,是不是有时候会忘记某些api的使用方法,不太确定他们的结果是怎样的,需要写一些测试代码,验证看看我们的写法是否正确.刚开始的时候我是在页面上写一个Button,添加点 ...
- 《windows核心编程系列 》六谈谈线程调度、优先级和关联性
线程调度.优先级和关联性 每个线程都有一个CONTEXT结构,保存在线程内核对象中.大约每隔20ms windows就会查看所有当前存在的线程内核对象.并在可调度的线程内核对象中选择一个,将其保存在C ...
- Service官方教程(9)绑定服务时的注意事项
Binding to a Service Application components (clients) can bind to a service by calling bindService() ...
- 准确计算CoreText高度的方法:
- (int)getAttributedStringHeightWithString:(NSAttributedString *) string WidthValue:(int) width { ; ...
- Solr中的group与facet的区别 [转]
Solr中的group与facet的区别 facet 自己理解就是分组聚合用的, 如下说明 http://blog.csdn.net/a925907195/article/details/472572 ...
- 如何使用mysqldump命令导入导出数据库下的数据或表结构(远程or本地都适合)
不多说,直接上干货! https://www.cloudera.com/documentation/manager/5-1-x/Cloudera-Manager-Installation-Guide/ ...
- jquery判断checkbox最多选几个
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8&qu ...
- dockerfile构建的镜像
转载请注明出处 https://www.cnblogs.com/majianming/p/9536975.html 在每执行一个命令时,便会commit形成一个层,最后形成堆栈式的结构.最后的镜像是各 ...