nginx怎么配置反向代理
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要讲解了"nginx怎么配置反向代理",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"nginx怎么配置反向代理"吧!准备工作系统环境:cent
千家信息网最后更新 2026年11月03日nginx怎么配置反向代理
这篇文章主要讲解了"nginx怎么配置反向代理",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"nginx怎么配置反向代理"吧!
准备工作
系统环境:centos 6.5_64
关闭SELinux
临时关闭:setenforce 0
永久关闭:永久关闭selinux 需要重启系统,所以可以先临时关闭再修改配置文件。
[root@aliyun home] vim /etc/selinux/config#SELINUX=enforcing #注释掉#SELINUXTYPE=targeted #注释掉SELINUX=disabled #增加:wq #保存,关闭。
放行防火墙80端口
[root@aliyun cnyunwei] /sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT[root@aliyun cnyunwei] /etc/init.d/iptables save #保存防火墙使配置生效
安装编译工具
[root@aliyun cnyunwei] yum -y install wget make gcc gcc-c++ zlib-devel openssl openssl-devel pcre-devel gd kernel keyutils patch perl
下载软件
[root@aliyun cnyunwei] cd /home/pro #进入目录下载nginx[root@aliyun cnyunwei] wget http://nginx.org/download/nginx-1.9.10.tar.gz下载pcre (支持nginx伪静态)[root@aliyun cnyunwei] wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.37.tar.gz下载ngx_cache_purge(清除指定URL缓存)[root@aliyun cnyunwei] wget http://labs.frickle.com/files/ngx_cache_purge-2.3.tar.gz
解压相关软件包:
[root@aliyun cnyunwei] cd /home/pro/[root@aliyun pro] tar zxvf pcre-8.37.tar.gz[root@aliyun pro] tar zxvf nginx-1.9.10.tar.gz[root@aliyun pro] tar zxvf ngx_cache_purge-2.3.tar.gz
安装pcre:
[root@aliyun pro] cd pcre-8.37[root@aliyun pcre-8.37] mkdir /usr/local/pcre[root@aliyun pcre-8.37] ./configure --prefix=/usr/local/pcre #配置安装路径[root@aliyun pcre-8.37] make && make install
安装nginx :
[root@aliyun pcre-8.37] groupadd nginx && useradd -r nginx -g nginx -s /sbin/nologin #创建用户和用户组[root@aliyun pcre-8.37] cd /home/pro/nginx-1.9.10[root@aliyun nginx-1.9.10] mkdir /usr/local/nginx[root@aliyun nginx-1.9.10] ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-openssl=/usr/ --with-pcre=/home/pro/pcre-8.37 --add-module=/home/pro/ngx_cache_purge-2.3[root@aliyun nginx-1.9.10] make && make install
注意:–with-pcre=/home/pro/pcre-8.37 和–add-module=/home/pro/ngx_cache_purge-2.3 指向的是源码包解压的路径,而不是安装的路径,否则会报错。
gx_cache_purge 是和nginx一起编译安装,不用单独进行安装。
安装完成后将系统服务文件nginx 复制到/etc/init.d/ 下。
[root@aliyun nginx-1.9.10] cd /etc/init.d/[root@aliyun init.d] chmod 755 nginx chown root.root nginx #设置权限[root@aliyun init.d] chkconfig –add nginx && chkconfig nginx on #添加到系统服务并设置自启动
配置都分别在对应的文件中进行加载,没有写入到主配置文件中:
[root@aliyun init.d] cd /usr/local/nginx/conf/[root@aliyun conf] vim nginx.conf
配置文件信息如下:
#所属用户、用户组user nginx nginx;#nginx进程数,建议设置为等于CPU总核心数worker_processes 1;error_log /home/nginx/error.log;#error_log logs/error.log notice;#error_log logs/error.log info;#pid logs/nginx.pid;events {use epoll;#单个进程最大连接数(最大连接数=连接数*进程数)worker_connections 65535;}http {#加载缓存include proxy.conf;#加载被代理服务器信息(可定义为负载均衡轮询)include mysvrhost.conf;#加载mime类型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;#服务器名字的hash表大小server_names_hash_bucket_size 128;#上传文件大小限制client_header_buffer_size 32k;#设定请求缓存large_client_header_buffers 4 32k;client_max_body_size 300m;#开启高效文件传输模式sendfile on;tcp_nopush on;#keepalive_timeout 0;#长连接超时时间,单位是秒keepalive_timeout 60;#防止网络阻塞tcp_nodelay on;#不显示nginx版本信息server_tokens off;gzip on;gzip_min_length 1k;gzip_buffers 4 16k;gzip_http_version 1.1;gzip_comp_level 2;gzip_types text/plain application/x-javascript text/css application/xml;gzip_vary on;#禁止nginx空主机头server {listen 80 default;server_name _;location / {root html;return 404;}location ~ /.ht {deny all;}}#加载站点配置信息include /home/nginx/vhost/*.conf;}创建相关文件和目录:
[root@aliyun conf] mkdir -p /home/nginx/proxy_temp_dir #proxy_temp_dir与proxy_cache_dir这两个文件夹必须在同一个分区[root@aliyun conf] mkdir -p /home/nginx/proxy_cache_dir[root@aliyun conf] mkdir -p /home/nginx/vhost
创建缓存区配置文件:proxy.conf
[root@aliyun conf] cd /usr/local/nginx/conf/[root@aliyun conf] vim proxy.conf#指定临时文件目录proxy_temp_path /home/nginx/proxy_temp_dir;#指定缓存区路径,设置Web缓存区名称为cache_one,内存缓存为500MB,自动清除1天内没有被访问的文件,硬盘缓存为30GB。proxy_cache_path /home/nginx/proxy_cache_dir levels=1:2 keys_zone=cache_one:500m inactive=1d max_size=30g;#定义缓冲区代理缓冲客户端请求的最大字节数client_body_buffer_size 512k;#定义连接后端服务器超时时间proxy_connect_timeout 60;#定义后端服务器响应请求超时时间proxy_read_timeout 60;#定义后端服务器发送数据超时时间proxy_send_timeout 60;#定义代理请求缓存区大小proxy_buffer_size 32k;proxy_buffers 4 64k;#定义系统繁忙时可申请的proxy_buffers大小proxy_busy_buffers_size 128k;#定义proxy缓存临时文件的大小proxy_temp_file_write_size 128k;#定义故障转移,如果后端的服务器返回502、504、执行超时等错误,自动将请求转发到upstream负载均衡池中的另一台服务器,实现故障转移。proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_404;#定义使用web缓存区cache_oneproxy_cache cache_one;
创建upstream 被代理服务器文件:
[root@aliyun conf] vim mysvrhost.confupstream susecuihost {#每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。ip_hash;#upstream的负载均衡,weight是权重,可以根据机器配置定义权重。weigth参数表示权值,权值越高被分配到的几率越大。#max_fails 允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误。#fail_timeout 是max_fails次失败后,暂停的时间。server 被代理服务器IP:80 weight=1 max_fails=2 fail_timeout=30s;#server 被代理服务器IP 2 :80 weight=1 max_fails=2 fail_timeout=30s;}创建站点信息配置文件:
[root@aliyun conf] cd /home/nginx/vhost/[root@aliyun vhost] vim cnyunwei.confserver {listen 80;server_name 站点域名;location /{#mysvrhost.conf 中配置的upstream 服务器池proxy_pass http://susecuihost;#增加设置web缓存的key值,nginx根据key值md5哈希存储缓存proxy_cache_key $host$uri$is_args$args;proxy_set_header Host $host;#后端的Web服务器可以通过X-Forwarded-For获取用户真实IPproxy_set_header X-Forwarded-For $remote_addr;proxy_cache_valid 200 304 12h;expires 2d;proxy_ignore_headers "Cache-Control" "Expires" "Set-Cookie";}#清除缓存(指定清除缓存参数)location ~ /purge(/.*){#允许所有IP可清理缓存allow all;#allow 192.168.21.0/24;#deny all;proxy_cache_purge cache_one $host$1$is_args$args;}#列出的扩展名文件不缓存location ~ .*\.(php|jsp|cgi|asp|aspx|flv|swf|xml)?${proxy_set_header Host $host;proxy_set_header X-Forwarded-For $remote_addr;proxy_pass http://susecuihost;}access_log off;}可以批量对使用到的文件重置下用户组:
[root@aliyun conf] chown nginx.nginx -R /home/nginx/proxy_cache_dir /home/nginx/proxy_temp_dir /home/nginx/vhost [root@aliyun conf] service nginx start #启动nginx
感谢各位的阅读,以上就是"nginx怎么配置反向代理"的内容了,经过本文的学习后,相信大家对nginx怎么配置反向代理这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
文件
配置
服务
服务器
缓存
代理
用户
信息
大小
时间
系统
存区
最大
路径
均衡
用户组
目录
站点
进程
学习
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
广东猪兼强互联网科技有限公司
深圳九邦互联网科技有限公司
蓝思科技飞鸽互联网
深圳科技互联网
互联网金融 金融科技
高科技与互联网
宜安科技 互联网金融
成都狮子座互联网科技
互联网科技股午盘股票涨跌
滨湖区互联网智能科技产品供应
互联网科技公司的市场部门
互联网科技创新服务
晓花互联网科技有限公司网址
想开互联网科技公司怎么样
保险科技服务互联网营销体系
山东星卡互联网科技有限公司官网
北京市互联网新科技
互联网科技包装股
互联网科技新闻
现代互联网科技公司
互联网与科技
中国互联网科技工作委员会毛军
顺玮阁互联网科技
恒生互联网科技指数跳水
2021互联网科技公司排名
怎样加入科技互联网
广东工业互联网大赛深圳学泰科技
济南小医互联网科技有限公司招聘
山东蛋芒互联网科技有限公司
华人运通互联网科技公司