# nginx-cfg **Repository Path**: net561/nginx-cfg ## Basic Information - **Project Name**: nginx-cfg - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-11-01 - **Last Updated**: 2024-11-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # nginx-cfg Nginx反向代理配置脚本 通过脚本参数实现Nginx反向代理的Server模块配置,配置格式如下 ``` # 默认域名反向代理配置 server { listen 80; server_name www.example.com; location / { proxy_pass http://www.example.com; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; access_log logs/www.example.com main; } } upstream www.example.com { server 10.0.0.1:80; server 10.0.0.2:80; } # 默认域名及路径反向代理配置 server { listen 80; server_name www.example.com; location / { proxy_pass http://www.example.com; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; access_log logs/www.example.com main; } location ^~ /directory/ { proxy_pass http://www.example.com.directory; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; access_log logs/www.example.com.directory main; } } upstream www.example.com { server 10.0.0.1:80; server 10.0.0.2:80; } upstream www.example.com.directory { server 10.0.0.3:80; server 10.0.0.4:80; } ``` # 使用说明 ``` # 需修改的脚本内容 bin=/usr/local/nginx/sbin/nginx #Nginx可执行程序路径 conf=/usr/local/nginx/conf/nginx.conf #Nginx主配置文件路径 conf_directory=/usr/local/nginx/conf/vhost #Nginx虚拟站点配置文件目录,在主配置文件中使用"include vhost/*.conf;"包含 bak_directory=/root/nginx_backup #Nginx备份文件路径 ``` # 使用方法 ``` nginx-cfg -t [type] -s [server_name] -h [ip:port] -d [directory] ``` # 参数说明 ``` -t [type] :脚本执行的模式 add|a 添加域名或目录映射(默认模式) modify|m 修改域名的upstream映射配置 delete|d 删除域名或目录映射 search|s 查看指定域名或目录的映射 -s [server_name] :配置的域名,例如:www.yihu.com -h [ip:port] :映射的主机地址及端口,多条记录以‘,’隔开,例如:’10.0.0.1:80,10.0.0.2:80’ -d [directory] :location目录 ``` # 使用案例 ``` 1、添加一个域名www.example.com,映射到主机10.0.0.1,端口80 nginx-cfg -t add -s www.example.com -h 10.0.0.1:80 2、添加一个域名www.example.com,映射到主机10.0.0.2和10.0.0.3,端口都为8080 nginx-cfg -t add -s www.example.com -h “10.0.0.2:8080,10.0.0.3:8080” 3、添加一个目录映射,域名为www.example.com,目录为directory,映射到主机10.0.0.4:80和10.0.0.5:8080 nginx-cfg -t add -s www.example.com -d directory -h “10.0.0.4:80,10.0.0.5:8080” 4、修改一个域名的映射,现有www.example.com映射至10.0.0.1:80,现在要加一台负载10.0.0.2:80 nginx-cfg -t modify -s www.example.com -h “+10.0.0.2:80” 5、修改一个域名的映射,现有www.example.com映射至10.0.0.1:80和10.0.0.2:80,现在要删一台负载10.0.0.1:80 nginx-cfg -t modify -s www.example.com -h “-10.0.0.1:80”  6、修改一个域名的映射,现有www.example.com,目录为directory,映射至10.0.0.2:80,现在要替换映射为10.0.0.3:80和10.0.0.4:80 nginx-cfg -t modify -s www.example.com -d directory -h “=10.0.0.3:80,10.0.0.4:80” 7、删除域名www.example.com下所有映射 nginx-cfg -t delete -s www.example.com 8、删除域名www.example.com下目录directory的映射 nginx-cfg -t delete -s www.example.com -d directory 9、查看域名www.example.com对应的映射 nginx-cfg -t search -s www.example.com 10、查看域名www.example.com下目录directory对应的映射 nginx-cfg -t search -s www.example.com -d directory ```