Nginx服务降权解决方案

本文介绍了如何在Linux环境下为Nginx创建非root用户并配置服务,包括创建用户目录、修改配置文件以使用非80端口、设置负载均衡和反向代理。通过设置`proxy_pass`和`proxy_redirect`解决反向代理过程中的301、302跳转问题,确保服务安全稳定运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

useradd ince
[root@web01 ~]# su - ince
[ince@web01 ~]$ mkdir logs conf www #创建必须的配置文件,日志,站点目录
cp /application/nginx/conf/mime.types /home/ince/conf/ #拷贝配置文件中网页支持类型文件
vim /home/ince/conf/nginx.conf
把配置文件的网站根目录 日志目录都改成ince用户的绝对路径
把端口改为其他端口 80端口只能root使用

/application/nginx/sbin/nginx -c /home/ince/conf/nginx.conf

worker_processes  4;
worker_cpu_affinity 0001 0010 0100 1000;
worker_rlimit_nofile 65535;
error_log  /home/ince/logs/error.log;
user www www;     
pid        /home/ince/logs/nginx.pid;
events {
    use epoll;
    worker_connections  10240;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    server {
        listen       8080;
        server_name  www.aaa.com;
        root   /home/ince/www;
        location / {
            index  index.php index.html index.htm;
                }
         access_log  /home/ince/logs/web_blog_access.log  main;
           }
}

解决普通端口非80提供服务的问题
用负载均衡解决web服务费80端口转换问题,负载均衡器如haproxy,nginx,F5,lvs要用nat模式
nginx反向代理配置
upstream www.aaa.com {
server 192.168.1.4:8080;
server 192.168.1.5:8080;
}
server {
#侦听的本机80端口
listen 80;
server_name www.aaa.com;
location / {
index index.php index.html index.htm;
proxy_pass http://www.aaa.com;
proxy_redirect default;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_next_upstream http_502 http_504 error timeout invalid_header;
acces_log /home/ince/logs/web_.log main;
}

proxy_redirect
Nginx做反向代理,如果在header设置了Host参数,同时如果有协议和二级目录有不一致的情况的时候,
当后端服务做302、301跳转的时候,需要用proxy_redirect将后端设置在response header中的Location做转换.
如果使用“default”参数,将根据location和proxy_pass参数的设置来决定

这里找到了两种办法解决:

1.用proxy_redirect参数修改被代理服务器返回的响应头。
加一行:proxy_redirect default;

2.直接修改proxy_set_header
proxy_set_header Host $host:8080;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值