Nginx方向代理

Nginx方向代理

什么是代理

正向代理和方向代理的区别

1.区别在于形式上服务'对象'不一样
2.正向代理代理的对象是客户端,为客户端服务
3.方向代理代理的对象是服务端,为服务端服务

为什么学代理

nginx代理PHP服务(fastcgi_pass:127.0.0.1:9000)
1.代理后端语言的服务(PHP、JAVA、Python…)
2.国外服务器代理国内服务器,方便国外用户上网

反向代理使用的模块

反向代理模块总结

方向代理模式 Nginx配置模块
http、websocket、https ngx_http_proxy_module
fastcgi ngx_http_fastcgi_module
uwsgi ngx_http_uwsgi_module
grpc ngx_http_v2_module

nginx方向代理配置

环境准备

主机名 WanIP LanIP 角色 应用
web02 10.0.0.8 172.16.1.8 web网站 nginx、php、wordpress
lb01 10.0.0.5 172.16.1.5 反向代理服务器 nginx
db01 10.0.0.51 172.16.1.51 数据库 MariaDB

安装LNMP环境

# 1.安装nginx
[root@web02 ~]# rpm -Uvh ./*.rpm
# 2.安装数据库
[root@db01 ~]# yum -y install mariadb-server

部署web

# 1.添加nginx虚拟主机配置文件
[root@web02 ~]# vim /etc/nginx/conf.d/blog.zh.com.conf 
server{
        listen 80;
        server_name blog.zh.com;
        root /blog/wordpress;
        index index.php index.html;

        location ~ \.php$ {
                fastcgi_pass  127.0.0.1:9000;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name
;
                include fastcgi_params;
        }
}
# 2.修改nginx和php启动用户
[root@web02 ~]# vim /etc/nginx/nginx.conf
user  www;

[root@web02 ~]# vim /etc/php-fpm.d/www.conf 
user = www
group = www

# 3.创建nginx和PHP启动用户
[root@web02 ~]# groupadd www -g 666
[root@web02 ~]# useradd  www -u 666 -g 666 -s /sbin/nologin -M

# 4.创建站点目录
[root@web02 ~]# mkdir -p /blog/wordpress

# 5.下载wordpress
[root@web02 wordpress]# wget https://cn.wordpress.org/latest-zh_CN.tar.gz

# 6.解压压缩包
[root@web02 wordpress]# tar xf latest-zh_CN.tar.gz 
[root@web02 wordpress]# systemctl enable nginx


# 7.开启nginx并加入开机自启
[root@web02 wordpress]# systemctl start nginx
[root@web02 wordpress]# systemctl enable nginx

# 8.开启php并加入开机自启
[root@web02 wordpress]# systemctl start php-fpm
[root@web02 wordpress]# systemctl enable php-fpm

# 9.授权站点目录
[root@web02 wordpress]# chown www.www -R /blog/

数据库操作

# 1.安装数据库操作
[root@db01 ~]# yum install -y mariadb-server

# 2.启动数据库并加入开机自启
[root@db01 ~]# systemctl start mariadb
[root@db01 ~]# systemctl enable mariadb

# 3.给MySQL的root用户设置密码
[root@db01 ~]# mysqladmin -uroot -p password '123'

# 4.进入数据库
[root@db01 ~]# mysql -uroot -p123 

# 5.创建数据库
MariaDB [(none)]> create database wordpress2;

# 6.创建用户
MariaDB [(none)]>  grant all on *.* to wp@'172.16.1.%' identified by '123'; 

nginx做代理服务器(lb01)

# 1.安装nginx
[root@lb01 ~]# yum install -y nginx

# 2.添加nginx代理配置文件
server{
        listen 80;
        server_name blog.zh.com;

        location /{
                proxy_pass http://172.16.1.8:80;
                # 在代理服务器中的请求头中加上域名,携带域名去访问后端的web02服务器
			   proxy_set_header Host  $host;
			   # 在代理
			   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			   # lb01连接web01的超时时间(代理服务器,连接后端服务的超时时间)
			    proxy_connect_timeout 60s;
			   # lb01代理服务器读取web01返回的数据超时时间(代理后端的服务器响应代理服务器的超时时间)
			    proxy_read_timeout 60s;
			    # 后端服务器回传给代理服务器数据的超时时间
			     proxy_send_timeout 60s;
			    # 开启代理服务器的缓冲区,代理服务器接收到web02返回的数据,接收一条,返回给用户一条
			    proxy_buffering on;
			    # 开启存放头部信息的缓冲区大小为32k
			    proxy_buffer_size 32k;
			    # 开启4个128k的存放数据主体缓冲区
			    proxy_buffers 4 128k;
			    
        }

}

posted @   FYytfg  阅读(145)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示