企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
> ### ***安装*** yum install pcre pcre-devel cd /usr/local/src/ wget http://nginx.org/download/nginx-1.6.3.tar.gz tar zxvf nginx-1.6.3.tar.gz cd nginx-1.6.3 ./configure --prefix=/usr/local/nginx make make install > 注意:由于nginx要在rewrite时要解析正则表达式,PCRE是正则解析库 >### **nginx管理** ``` systemctl start nginx.service    #启动nginx systemctl stop nginx.service    #结束nginx systemctl restart nginx.service   #重启nginx ``` > ### ***nginx目录*** ``` cd /usr/local/nginx ---conf #配置文件 ---html #网页文件 ---logs #日志文件 ---sbin #主要二进制程序 ``` >### ***配置pathinfo格式访问*** ``` location ~ \.php(.*)$ { root html; fastgi_pass 127.0.0.1:9000; fastcgi_index index.php fastcgi_param SCRIPT_FILENAME $DOCUMENT_ROOT$fastcgi_script_name; fastcgi_param PATH_INFO $1; } ``` >### ***隐藏入口文件index.php*** ``` Sever { listen 80; server_name 域名; access_log logs/域名.log main; location / { root html/网站目录; index index.php index.html; if ( !-e $request_filename) { rewrite (.*) /index.php/$1; } } } ``` >### ***利用try_fieles隐藏入口文件index.php*** ``` Sever { listen 80; server_name 域名; access_log logs/域名.log main; location / { root html/网站目录; index index.php index.html; try_files $uri /index.php?$rui } } ``` > ### **反射代理** 用nginx做反向代理用proxy_pass 以反向代理为例,nginx不自己处理图片的相关请求,而是把图片请求转发给apache来处理. 执行流程:客户端->nginx->proxy_pass->apache(再原路返回) 具体配置: ``` location ~ \.(jpg|jpeg|png|gif)$ { proxy_pass HTTP://IP:port; } ``` 反向代理容易把用户真正的IP丢失,而是获得的是代理服务器的IP,要想获得真正用户的IP,需要在代理服务器通过设置头信息字段,把用户IP传到后台服务器. 配置如下: ``` location ~ \.(jpg|jpeg|png|gif)$ { proxy_set_header X-Forwarded-For $remote_addr; proxy_pass http://ip:port; } ``` 再到apache的日志格式里加上**X-Forwarded-For**,如下: ``` LogFormat "%{X-Forwarded-For}i %1 %u %t \"$r\" %>s %b" common ``` > ### ***负载均衡*** 在nginx中做集群与负载均衡步骤都是一样的,Upstream{}模块 把多台服务器加入到一个组中. 然后memcached_pass, fastcgi_pass, proxy_press ====>组 具体配置 1配置upstream(上游) ``` upstream imageserver { server 192.168.1.205:8080 weight=1 max_fails=2 fail_timeout=30s; server 192.168.1.206:8081 weight=1 max_fails=2 fail_timeout=30s; } ``` 2下游调用 ``` location ~ \.(jpg|jpeg|png|gif)$ { proxy_set_header X-Forwarded-For $remote_addr; proxy_pass http://imageserver; } ``` 默认的负载均衡算法: 是设置计数器,轮流请求N台服务器. 可以安装第3方模块,来利用不同参数把请求均衡到不同服务器去. 如基于cookie值区别用户做负载均衡(nginx sticky模块). 或基于URI利用一致性哈希算法做均衡(NginxHttpUpstreamConsistenHash模块). 或基于IP做负载均衡等. nginx配置网站域名,需要在本地的hosts文件将对应的域名添加进去,例如: 192.168.1.101 www.demo.io