Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >nginxconf 自动生成 nginx tcp 转发配置文件 conf

nginxconf 自动生成 nginx tcp 转发配置文件 conf

原创
作者头像
eisc
修改于 2025-02-13 03:05:47
修改于 2025-02-13 03:05:47
2640
举报
代码语言:shell
AI代码解释
复制
#!/bin/bash
# nginx 代理自动生成,开发:eisc.cn

configDIR(){

    if [ `id -un` != "root" ]
    then
        sudoc="sudo" 
    else
        sudoc=""
    fi

    wwwconf=/datadisk/eisc/wwwconf/
    $sudoc mkdir -p $wwwconf ; $sudoc rm -rf $wwwconf/*


    xiangmuName=(
        www   work   sou   enchantment  guzheng  zhoubao  gcc  xibin
    )

    peizhi="
ddoss.cn

10.1.1.2

62000
"


}

create_www_conf(){

  echo "案例:   eisc.cn 0.0.0.0 62000"
#  read -p " 请输入三个参数:" peizhi

    buff=( $peizhi )

    yuming=${buff[0]}
    # 前端域名,增加到nginx 消息头部
    ip=${buff[1]}
    # 后端服务器ip
    portmin=${buff[2]}
    portmin=$[portmin-1]
    # 设置最小端口,后面网站按照顺序自动加1

    declare -A port
      port["www"]="62010"
      port["work"]="62011"
      port["sou"]="62012"
      port["enchantment"]="62013"
      port["guzheng"]="62014"
      port["zhoubao"]="62015"
      port["gcc"]="62016"
      port["xibin"]="62100"

    cd $wwwconf; sudo chmod 777 -R $wwwconf $wwwconf/*

    if [ ! -e eiscwwwconf.tar.gz ]
    then
      $sudoc tar -czvf eiscwwwconf.tar.gz *
      $sudoc rm -rf `ls | grep -v eiscwwwconf.tar.gz`
    fi

    $sudoc rm -rf `ls | grep -v eiscwwwconf.tar.gz`

   # file=(`ls $www | grep -vE "ssl|wwwconf|wwwroot|*.sh"`)
   file=${xiangmuName[*]}

    for i in ${file[*]}
        do
            ((a++))
            b=$[portmin+a] ; portlist[$c]=$b ; ((c++))
            # 打印一次变量,接收一个元素存入数组: portlist
            if [ ! -e $www/$i/cgi-bin ]
            then
            sudo mkdir $www/$i/cgi-bin
            fi

            case $i in
              "www")          b=${port[www]}           ; echo "#------- www 被手动指定固定端口  $b -------#" ;;
              "work")         b=${port[work]}          ; echo "#------- work 被手动指定固定端口  $b -------#" ;;
              "sou")          b=${port[sou]}           ; echo "#------- sou 被手动指定固定端口  $b -------#";;
              "enchantment")  b=${port[enchantment]}   ; echo "#------- enchantment 被手动指定固定端口  $b -------#";;
              "guzheng")      b=${port[guzheng]}       ; echo "#------- guzheng 被手动指定固定端口  $b -------#";;
              "zhoubao")      b=${port[zhoubao]}       ; echo "#------- zhoubao 被手动指定固定端口  $b -------#";;
              "gcc")          b=${port[gcc]}           ; echo "#------- zhoubao 被手动指定固定端口  $b -------#";;
              "xibin")        b=${port[xibin]}         ; echo "#------- xibin 被手动指定固定端口  $b -------#";;
            esac

            echo "  $i 创建web网站 的端口:   $b 前端域名 +  $i.$yuming  + 后端ip port + $ip:$b  +  c++ cgi 解析目录: $i/cgi-bin"
            echo "  $i 创建web网站 的端口:   $b 前端域名 +  $i.$yuming  + 后端ip port + $ip:$b  +  c++ cgi 解析目录: $i/cgi-bin" >> log_www_conf.txt

#---------  生成前端转发 子站点文件  -----------#


            nginxwwwurl=$i.$yuming                      # replase in case 
            case $i in 
                "www")  nginxwwwurl="$i.$yuming $yuming";;
                "gcc")  nginxwwwurl="www.okgcc.cn okgcc.cn";;
            esac

            $sudoc mkdir -p $wwwconf/nginxzhuanfa ; $sudoc chmod 777 $wwwconf/nginxzhuanfa
            echo "
            server{
            listen 80;
            server_name $nginxwwwurl;
            location / {
                proxy_pass http://$ip:$b;
                #---- 记录 IP 地址 ----#
                proxy_redirect off;
                proxy_set_header Host \$http_host;
                proxy_set_header X-Real-IP \$remote_addr;     
                proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
              }
            }
            " > $wwwconf/nginxzhuanfa/$i-$b.conf

#---------- 端口对端口 ----------#

            $sudoc mkdir -p $wwwconf/portconf ; $sudoc chmod 777 $wwwconf/portconf
            echo "
            server{
            listen $b;
            location / {
                proxy_pass http://$ip:$b;
                #---- 记录 IP 地址 ----#
                proxy_redirect off;
                proxy_set_header Host \$http_host;
                proxy_set_header X-Real-IP \$remote_addr;     
                proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
              }
            }
            " > $wwwconf/portconf/$i-$b.conf

            if [ "$i" = "www" ]
            then
                echo "
                  server{
                  listen $b;
                  location / {
                      proxy_pass http://$ip:$b;

                    }
                  }
                " > $wwwconf/portconf/$i-$b.conf
            fi


            if [ "$i" = "gcc" ]
            then
                echo "
                  server{
                  listen $b;
                  location / {
                      proxy_pass http://$ip:$b;
                    }
                  }
                " > $wwwconf/portconf/$i-$b.conf
            fi



#---------- 后端转发子站点 ----------#

            echo "
            server {
              listen       $b;
              root   $www/$i;
              index index.php index.html index.htm index;

              add_header 'yuming is ' '$i.$yuming';
              add_header 'ipport is ' '$ip:$b';

              location ~ \.php {

      #                fastcgi_pass   unix:/var/run/php-fpm811.sock;
                      fastcgi_pass   127.0.0.1:9000;
                      fastcgi_index  index.php;
                      fastcgi_param  SCRIPT_FILENAME  \$document_root\$fastcgi_script_name;
                      include        fastcgi_params;
              }

              location /cgi-bin {
                  fastcgi_pass  unix:/var/run/fcgiwrap.socket;
                  include fastcgi.conf;
              }
            }
           " > $wwwconf/$b.$i.conf

#---------- 301 zhuantiao ----------#       
        $sudoc mkdir -p $wwwconf/301 ; $sudoc chmod 777 $wwwconf/301

        echo "
        server{
        listen 80;
        server_name $nginxwwwurl;
        location / {
            rewrite ^(.*)$ http://$i.$ip\$1 permanent;
            }
        }
        " > $wwwconf/301/$i.$yuming.conf

    done

        echo "[ok]创建网站日志存放在:   $wwwconf/log_www_conf.txt"
        echo "[ok]前端转发 nginx 子文件目录: $wwwconf/nginxzhuanfa"
        sudo nginx -s reload
}


main()
{
   configDIR
   create_www_conf
}

main

# downloadUrl:   wget http://ddoss.cn/file/ubuntu/shell/server/nginxconf.sh

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
服务器集群自动切换网络节点
eisc
2024/08/22
1960
网络集群节点自动切换nginx负载均衡,自动生成nginx配置文件。小绿叶技术博客--中央集成--外层公共能源控制系统--集群网络节点控制--主驱动
eisc
2025/05/07
1050
Nginx/Tengine通用配置教程
Nginx/Tengine通用配置教程,包含多域名共用一个端口指向不同程序、Nginx负载均衡配置、Https配置、禁止通过IP访问、设置访问流量并发速率、Nginx反代PHP、Nginx反代Tomcat。 Nginx通用配置: user www www; worker_processes auto; worker_cpu_affinity auto; dso { load ngx_http_concat_module.so; load ngx_http_sysguard_module.so; }
4xx.me
2022/06/09
9530
Nginx/Tengine通用配置教程
Nginx配置文件nginx.conf全解
nginx配置文件nginx.conf的配置http、upstream、server、location等;
青山师
2023/05/05
7420
Nginx——ubuntu安装Nginx并配置https
介绍: 我们在部署应用时,希望用到 Nginx ,并配置上 https 。我在网上看了很多文章,感觉都不是很系统。因此写下此文,以备日后使用。
凡人飞
2020/09/21
5K3
Nginx——ubuntu安装Nginx并配置https
配置nginx.conf实现负载均衡
编辑/usr/local/nginx/conf/nginx.conf
似水的流年
2018/01/14
7200
debian12/ubuntu24/22/20 shell 脚本自动编译web安装网站环境 nginx1.26.0 php7/8 mariadb1011
#!/bin/bash# ubuntu20 shell 脚本自动编译web安装网站环境 nginx199 php7/8 mariadb1011 以 systemd 方式设置开机启动# mysql 重置 root 密码,创建 或删除 mysql 子库和子用户downdir="/datadisk/eisc/download" ; sudo mkdir -p $downdir ; sudo chmod 777 -R $downdirinstalldir="/datadisk/eisc/server" ;
eisc
2022/10/30
8540
Nginx通过https方式反向代理的简单实现
1)nginx的反向代理:proxy_pass 2)nginx的负载均衡:upstream 下面是nginx的反向代理和负载均衡的实例: 负载机:A机器:103.110.186.8/192.168.1.8 后端机器1:B机器:192.168.1.102 后端机器2:C机器:192.168.1.103 需求: 1)访问A机器的8080端口,反向代理到B机器的8080端口; 访问A机器的8088端口,反向代理到C机器的8088端口; 访问http://103.110.86.8:8090/io
洗尽了浮华
2018/01/22
7.8K0
Linux中Nginx配置域名访问多个项目解决方案
首先是系统环境:CentOS7,Nginx版本:1.62(如需其他版本自行到官网下载)
芈亓
2022/06/17
3.4K0
Linux中Nginx配置域名访问多个项目解决方案
Nginx配置文件详细说明
在此记录下Nginx服务器nginx.conf的配置文件说明。 #运行用户 user www-data;     #启动进程,通常设置成和cpu的数量相等 worker_processes  1; #全局错误日志及PID文件 error_log  /var/log/nginx/error.log; pid        /var/run/nginx.pid; #工作模式及连接数上限 events {     use   epoll;             #epoll是多路复用IO(I/O Multipl
艳艳代码杂货店
2021/10/29
5950
前后端都用得上的 Nginx 日常使用经验
最基本组成:一个 server 节点一个域名配置,要添加其他配置添加 server 节点即可
易墨
2023/11/04
1.4K0
前后端都用得上的 Nginx 日常使用经验
Nginx配置文件nginx.conf中文详解
#定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为等于CPU总核心数。 worker_processes 8; #全局错误日志定义类型,[ debug | info | notice | warn | error | crit ] error_log /var/log/nginx/error.log info; #进程文件 pid /var/run/nginx.pid; #一个nginx进程打开的最多文件描述符数目,理论值应该是最多打开文件数(系统
老七Linux
2018/05/09
1.3K0
jenkins自动打包生成docker镜像后自动发布并nginx代理访问
之前曾写过docker及jenkins基础使用  https://www.cnblogs.com/xiaochangwei/category/816943.html
肖哥哥
2019/05/15
1.4K0
jenkins自动打包生成docker镜像后自动发布并nginx代理访问
学完Nginx/OpenResty详解,反向代理与负载均衡配置,能涨薪多少
接下来介绍Nginx的重要功能:反向代理+负载均衡。单体Nginx的性能虽然不错,但也是有瓶颈的。打个比方:用户请求发起一个请求,网站显示的图片量比较大,如果这个时候有大量用户同时访问,全部的工作量都集中到了一台服务器上,服务器不负重压,可能就崩溃了。高并发场景下,自然需要多台服务器进行集群,既能防止单个节点崩溃导致平台无法使用,又能提高一些效率。一般来说,Nginx完成10万多用户同时访问,程序就相对容易崩溃。
愿天堂没有BUG
2022/10/28
2.5K0
学完Nginx/OpenResty详解,反向代理与负载均衡配置,能涨薪多少
nodejs与nginx的完美搭配
node自己本身可以作为服务器进行驱动,但是node本身对文件的处理能力并不是很好,所以当我们的生产环境中应尽量使用nginx来处理静态的资源以及反向代理,同时也解决了node分布式以及负载均衡的相关问题。
用户1065635
2019/03/21
9.4K0
Nginx配置记录
Contents 1 Nginx配置记录 1.1 防盗链 1.2 根据文件类型设置过期时间 1.3 静态资源访问 1.4 日志配置 1.4.1 日志字段说明 1.4.2 access_log 访问日志 1.4.3 error_log 日志 1.4.4 日志切割 1.5 反向代理 1.6 禁止指定user_agent 1.7 nginx访问控制 1.8 负载均衡 1.9 开启SSL 1.10 流量限制 1.11 错误页配置 Nginx配置记录 防盗链 location ~* \.(gif|jpg|png)$
w候人兮猗
2020/07/01
4410
史上最简单的 Nginx 教程,没有之一!
原文链接:https://juejin.im/post/5d81906c518825300
业余草
2019/09/25
3.7K0
史上最简单的 Nginx 教程,没有之一!
Nginx基于TCP/UDP端口的四层负载均衡(stream模块)配置梳理
通过我们会用Nginx的upstream做基于http/https端口的7层负载均衡,由于Nginx老版本不支持tcp协议,所以基于tcp/udp端口的四层负载均衡一般用LVS或Haproxy来做。至于4层负载均衡和7层负载均衡的区别,可以参考:http://www.cnblogs.com/kevingrace/p/6137881.html。然而Nginx从1.9.0版本开始,新增加了一个stream模块,用来实现四层协议的转发、代理或者负载均衡等,鉴于Nginx在7层负载均衡和web service上的成
洗尽了浮华
2018/01/23
29.6K0
Nginx反向代理Apache2多个端口
在涉及到使用Nginx代理多个Apache2项目时,不可避免需要Apache2使用不同的端口才能正常访问。
我不是程序员110
2022/10/28
1.1K0
Nginx+keepalived 实现高可用,防盗链及动静分离配置,写得太好了!
Rewrite规则含义就是某个URL重写成特定的URL(类似于Redirect),从某种意义上说为了美观或者对搜索引擎友好,提高收录量及排名等。
java进阶架构师
2021/12/02
1.8K0
Nginx+keepalived 实现高可用,防盗链及动静分离配置,写得太好了!
推荐阅读
相关推荐
服务器集群自动切换网络节点
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档