什么是反向代理
反向代理是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。反向代理代理的是服务器,反向代理暴露的是代理服务器地址,隐藏了真实服务器 IP 地址。
一、下载nginx
进入官网地址:http://nginx.org/en/download.html
下载最新的稳定版本,目前最新稳定版是 nginx-1.24.0,如图下:
下载成功后会得到一个zip包,直接解压到自己想要的目录就好
二、配置nginx
打开conf文件夹
找到nginx.conf文件,打开
以我现在的项目为例,以下是我的nginx.conf文件代码:
#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 {
upstream portal {
ip_hash;
server 127.0.0.1:3001; #需要代理的ip端口
}
upstream cas {
ip_hash;
server 127.0.0.1:5000; #需要代理的ip端口
}
upstream exchange {
ip_hash;
server 127.0.0.1:3000; #需要代理的ip端口
}
upstream adminpannel {
ip_hash;
server 127.0.0.1:4040; #需要代理的ip端口
}
server {
listen 80; #监听端口,默认是80
server_name portal.stvs.com; #反向代理服务器名称,供用户访问
location / { #匹配客户端请求url
proxy_pass http://portal; #反向代理配置,将请求转发到指定服务
proxy_set_header Host $http_host; #允许重新定义或者添加发往后端服务器的请求头,默认值
}
}
server {
listen 80;
server_name exchange.stvs.com;
location / {
proxy_pass http://exchange;
proxy_set_header Host $http_host;
}
}
server {
listen 80;
server_name cas.stvs.com;
location / {
proxy_pass http://cas;
proxy_set_header Host $http_host;
}
}
server {
listen 80;
server_name adminpannel.stvs.com;
location / {
proxy_pass http://adminpannel;
proxy_set_header Host $http_host;
}
}
}
三、配置hosts
先了解什么是hosts?
hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的IP地址建立一个映射关系。
当用户在浏览器中输入一个需要登录的网址时,系统会首先从hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到,则系统会再将网址提交DNS域名解析服务器进行IP地址的解析。
注意:hosts文件只能配置ip和域名的映射关系,但是不能配置端口号,默认访问80端口
不管你是windwos还是linux,那都是有的。
默认路径为:C:\Windows\System32\drivers\etc
打开路径,可以看到hosts文件,不过有些电脑是大写的HOSTS
打开hosts文件,追加配置,如下图:
我这里的配置是对应的上面nginx.conf文件的配置,一看就明白。
到这里,Nginx反向代理就算是配置好了。
四、启动nginx
找到上面解压nginx文件,双击nginx.exe,如下:
双击nginx.exe后,有时候会看到屏幕会闪一下,也就是控制台打开又马上消失。有时候没看到有明显反应。
双击后应该就是已经打开了nginx,可以去任务管理器找找看有没有nginx进程,如下图:
当然也可以使用nginx命令来启动和关闭nginx,具体就自行百度了。