• 将宝塔PHP项目下载到本地部署之nginx配置


    最近,公司人手不够,找外包团队做了个项目,php做的,对方测试是部署到宝塔上的。

    对方做方,直接将宝塔上代码下载下来丢给了我们。

    项目做的超级烂,服务态度还很差。主要是我们提前把款打给了对方,看来以后项目没部署完,没正式运行不能给尾款啊!最主要是价格还不低,比市场价稍高一点,因为是朋友介绍的,也不好意思砍价。

    对方一问三不知,回答永远只有一句话:我们都在宝塔部署的,之前也没在其它服务器上配过。

    没办法只能自己摸索着干了

    我们的机房服务器环境:

    Linux CentOS6.10

    MYSQL5.6

    JDK1.8

    Redis5.0.14

    Nginx1.20.1

    一、第一步是搭建PHP环境

    请看上篇文章,下面有送门

    传送门:https://www.cnblogs.com/hunttown/p/16287944.html

    二、配置Nginx

    因为我们有一个主入口,也是nginx做的负载均衡,所以结构为:

    主服务器nginx -----> 从服务器nginx -----> php7.3 

    1、先来看一下主服务器的nginx配置(Https转发)

    upstream mydomain {
        #你要转发的服务器和端口
        server 192.168.200.46:80 weight=10 max_fails=2 fail_timeout=30s;
    }
    server {
        #监听80端口和域名,如果是http请求,则要自动跳转到https
        listen                  80;
        server_name             www.domain.com;
        rewrite ^(.*)$ https://$host$1 permanent;
    }
    server {
        #监听443端口
        listen 443              ssl;
        server_name             www.domain.com;
        
        #配置Https证书
        ssl_certificate         ca/www.domain.com/7923651_www.domain.com.pem;
        ssl_certificate_key     ca/www.domain.com/7923651_www.domain.com.key;
        ssl_session_timeout     5m;
        ssl_ciphers             ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols           TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers       on;
    
        #日志文件存储位置
        access_log      logs/www.domain.com/wwww.domain.com_access.log main;
        error_log       logs/www.domain.com/wwww.domain.com_error.log warn;
    
        location / {
            proxy_next_upstream     http_500 http_502 http_503 http_504 error timeout invalid_header;
            proxy_set_header        Host  $host;
            proxy_set_header        X-Real-IP $remote_addr;
            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header        Upgrade $http_upgrade;
            proxy_set_header        Connection "upgrade";
            proxy_pass              http://mydomain;
    
            #WebSocket support (nginx 1.4)
            proxy_http_version 1.1;
        }
        location /logs/ {
            autoindex       off;
            deny all;
        }
    }

    2、再看从服务器配置(从服务器不需要https配置)

    server {
        #监听80端口,从主服务器转发过来的,要和主服务器转发的一致
        listen              80;
        server_name         wwww.domain.com;
        
        #配置你的项目目录,这个地方很重要
        root                /usr/local/webroot/myproject/public;
        index               index.html index.php index.htm default.php default.htm default.html;
    
        location / {
            index  index.php index.html index.htm;
    
            #重写规则,伪静态
            if (!-e $request_filename){
                rewrite ^/(.*)$ /index.php?s=$1;
            }
        }
    
        location ~ \.php {
            include fastcgi_params;
            
            #pathinfo,用于存放pathinfo信息
            set $path_info "";
            
            #pathinfo,用于存放真实地址
            set $real_script_name $fastcgi_script_name;
    
            #如果地址与引号内的正则表达式匹配
            if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
                #将文件地址赋值给变量 $real_script_name
                set $real_script_name $1;
                
                #将文件地址后的参数赋值给变量 $path_info
                set $path_info $2;
            }
    
            #配置fastcgi
            fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
            fastcgi_param SCRIPT_NAME $real_script_name;
            fastcgi_param PATH_INFO $path_info;
            
            #php服务指向
            fastcgi_intercept_errors on;
            fastcgi_pass   127.0.0.1:9001;
            include        fastcgi.conf;
        }
    
        access_log          logs/wwww.domain.com/wwww.domain.com_access.log main;
        error_log           logs/wwww.domain.com/wwww.domain.com_error.log warn;
    }

    三、启动服务就可以运行了,至此配置完成

    当然期间还遇到了一些小问题,传送门:https://www.cnblogs.com/hunttown/p/16373952.html

  • 相关阅读:
    批量修改文件的名字
    字节码指令以及操作数栈的分析
    字节码文件的分析
    类加载器详解
    类的加载-连接-初始化
    电商订单ElasticSearch同步解决方案--使用logstash
    springboot整合Mangodb实现crud,高级查询,分页,排序,简单聚合
    mongodb安装教程(亲测有效)
    Azure : 通过 SendGrid 发送邮件
    用java实现删除目录
  • 原文地址:https://www.cnblogs.com/hunttown/p/16379218.html
Copyright © 2020-2023  润新知