最近,公司人手不够,找外包团队做了个项目,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