#本文是做记录使用,不做为任何参考文档#
迁移代码
将源代码scp至新的server上
搭建服务
yum安装nginx服务
yum install nginx #yum安装
service nginx start #启动服务
配置文件相关
备份原文件
cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
因为我是同时迁移两个不通域名的web后台,所以涉及到了nginx的虚拟目录
为了主配置文件清晰点,所以使用了 include /etc/nginx/conf.d/*.conf; 将不通的server配置拆分出去~
include 要写在http字段内(#废话#)
vi /etc/nginx/nginx.conf# For more information on configuration, see:
# * Official English Documentation: http://nginx.org/en/docs/
# * Official Russian Documentation: http://nginx.org/ru/docs/user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;# Load dynamic modules. See /usr/share/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;events {
worker_connections 1024;
}http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048; include /etc/nginx/mime.types;
default_type application/octet-stream; # Load modular configuration files from the /etc/nginx/conf.d directory.
# See http://nginx.org/en/docs/ngx_core_module.html#include
# for more information.
include /etc/nginx/conf.d/*.conf;# Settings for a TLS enabled server.
"/etc/nginx/nginx.conf" 69L, 1979C
虚拟目录配置
到/etc/nginx/conf.d/ 下创建以.conf结尾的文件会被nginx解析 aaa.com.conf bbb.com.conf
[root@]# cd /etc/nginx/conf.d/
[root@]# ll
total 12
-rw-r--r-- 1 root root 516 Jul 24 13:54 aaa.com.conf
-rw-r--r-- 1 root root 556 Jul 28 16:59 bbb.conf
[root@]#
[root@iz8vbilqy0q9v8tds55bqzz conf.d]# cat aaa.com.conf
server {
listen 80;
server_name aaa.com;
root /var/www/aaa.com;
index index.html index.htm index.php;
location /APP/{ #例如nginx的重定向功能,将访问/APP/开头指定到interface文件中
index index.php;
if (!-e $request_filename){
rewrite ^/APP/(.*)$ /interface.php?s=$1 last;
break;
}
}location ~ \.php$ { #指定本地php解析,fastcgi 信息
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
#fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_FILENAME /var/www/aaa.com$fastcgi_script_name;
include fastcgi_params;
}
}
[root@]#
[root@iz8vbilqy0q9v8tds55bqzz conf.d]# cat bbb.com.conf
server {
listen 80;
server_name bbb.com;
root /var/www/bbb.com;
index index.html index.htm index.php;
location /APP/{ #例如nginx的重定向功能,将访问/APP/开头指定到interface文件中
index index.php;
if (!-e $request_filename){
rewrite ^/APP/(.*)$ /interface.php?s=$1 last;
break;
}
}location ~ \.php$ { #指定本地php解析,fastcgi 信息
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
#fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_FILENAME /var/www/bbb.com$fastcgi_script_name;
include fastcgi_params;
}
}
[root@]#
按以上配置完成后,即可访问相应的目录~
www.aaa.com
www.bbb.com
##########################################################
有个小插曲记录一下,我搭建好服务后发现bbb.com的php文件没有解析,aaa却正常,报错~
原来两个服务的框架不一样,bbb的框架写的不太规范,导致了解析失败,更改php.ini文件解决
short_open_tag = Off 默认为OFF更改为 short_open_tag = ON
官方的解释,是要打开适配 <? ?> 这种不规则的写法。~~~~
; This directive determines whether or not PHP will recognize code between
; <? and ?> tags as PHP source which should be processed as such. It's been
; recommended for several years that you not use the short tag "short cut" and
; instead to use the full <?php and ?> tag combination. With the wide spread use
; of XML and use of these tags by other languages, the server can become easily
; confused and end up parsing the wrong code in the wrong context. But because
; this short cut has been a feature for such a long time, it's currently still
; supported for backwards compatibility, but we recommend you don't use them.
; Default Value: On
; Development Value: Off
; Production Value: Off
; http://php.net/short-open-tag
short_open_tag = ON
#######################
还有类似的权限啊,chown -R nginx.nginx /var/www/xxxx 等等细节需要注意,有可能会影响~
#######################
如果有redis服务的话,也会影响使用,例如缺少了redis的插件,redis服务没有集体迁移
我就遇到了redis服务迁移出的问题,redis内容太大了我内存比较低导致了服务总被系统kill掉,通过dmesg日志才发现的。。。
#######################
迁移的时候问题很多,查看nginx和php的错误日志可以很快定位问题