nginx怎么配置反向代理
发表于:2024-11-24 作者:千家信息网编辑
千家信息网最后更新 2024年11月24日,这篇文章主要讲解了"nginx怎么配置反向代理",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"nginx怎么配置反向代理"吧!准备工作系统环境:cent
千家信息网最后更新 2024年11月24日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安全错误
数据库的锁怎样保障安全
保险软件开发工程师
软件开发太累咋办
组建网络安全专业队伍
软件开发公司劳动合同模板
闵行区品牌软件开发供应商
侠道服务器
ei数据库创刊哪一年
互联网软件开发工程师需要会什么
关于5g无线网络技术论文
北京网络安全系统生产厂家
怎么获取数据库id
达梦数据库密码找回
物流行业的软件开发
武汉大学网络安全考研在职
dhcp服务器搭建画图
铜陵网络安全考试scsa认证
服务器防护器设置
采购it软件开发需要注意
数据库的物理结构不包括
软件开发周期八个阶段
四川亿嘉网络技术有限公司
如何看懂网络安全工程师证书
金塔软件开发系统
软件开发出来不和需求不一致
大专学习网络技术有前途吗
计算机网络技术应聘职位
物流行业的软件开发
移动公司网络技术岗位
服务器安全基线文档
手游云顶之翼无法连接服务器