Nginx——nginx作为代理服务器(反向代理示例)

Posted 小志的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx——nginx作为代理服务器(反向代理示例)相关的知识,希望对你有一定的参考价值。

一、nginx配置代理的语法

  • Syntax:proxy_pass URL; URL表示所有客户端请求请求到nginx代理服务器后,nginx代理服务器向原始服务器请求的url。URL格式:http://ip+端口/路径
  • Default:—— 表示默认没有配置;
  • Context:location; 表示需要在location块中;

二、nginx反向代理演示示例

1、配置nginx访问html页面的路径

  • 创建nginxproxy.html页面,上传到/opt/app/html目录下

    <html lang="en">
    	<head>
    		<meta charset="utf-8">
    		<title>测试nginx反向代理</title>
    	</head>
    
    	<body style="background-color:red;">
    		<h1>nginx反向代理!!!!</h1>
    	</body>
    </html>
    

2、编辑 nginx.conf 配置文件可以看到在/etc/nginx/conf.d/目录下可以创建子配置文件,如下图:

3、lz在/etc/nginx/conf.d/目录下创建一个origin_server.conf(原始服务配置文件)和proxy_server.conf(代理服务配置文件),内容分别如下:

  • origin_server.conf配置文件内容:(注:因为原始服务用的是8080端口,需要配置8080端口不被外界所访问

    server {
            listen       8080; 
            server_name  localhost;
    	
    		location / {
    			root /opt/app/html;
    			index index.html index.htm;
    		}	
            error_page 404 /404.html;
            location = /404.html {
            }
    
            error_page 500 502 503 504 /50x.html;
            location = /50x.html {
            }
        }
    

  • proxy_server.conf配置文件内容如下:

    server {
            listen       80; #端口
            server_name  localhost; #访问的ip
    	
    		location / {
    			root /opt/app/html;
    			index index.html index.htm;
    		}
    		#配置代理服务器访问原始服务器的地址
    		location ~ /nginxproxy.html$ {
    			proxy_pass http://localhost:8080;
    		}		
    			
            error_page 404 /404.html;
            location = /404.html {
            }
    
            error_page 500 502 503 504 /50x.html;
            location = /50x.html {
            }
        }
    

4、启动nginx服务并检查配置文件

  • 启动nginx服务

    [root@localhost conf.d]# systemctl start nginx.service
    
  • 检查配置修改的配置文件是否正确,返回successful表示配置文件修改无错

    [root@localhost nginx]# nginx -t -c /etc/nginx/nginx.conf
    

5、重新加载nginx配置文件,并查看

[root@localhost conf.d]# nginx -s reload -c /etc/nginx/nginx.conf

6、查看本机启用nginx的端口

[root@localhost conf.d]# netstat -luntp|grep nginx


7、在浏览器输入http://localhost/nginxproxy.html地址(即通过代理服务的80端口访问,可以访问到页面),如下图:


8、在浏览器输入http://localhost:8080/nginxproxy.html地址(即直接访问原始服务的8080端口访问,不可以访问到页面),如下图:

以上是关于Nginx——nginx作为代理服务器(反向代理示例)的主要内容,如果未能解决你的问题,请参考以下文章

Nginx——nginx作为代理服务器(反向代理示例)

Nginx——nginx作为代理服务器(反向代理示例)

【nginx】如何解决使用nginx作为反向代理端口耗尽问题?

谁能解释一下nginx反向代理是啥意思?

Nginx作为反向代理服务器

Nginx详解(正向代理反向代理负载均衡原理)