快速切换Nginx作为网站前端代理服务器

Nginx比起Apache的高性能高并发特性已经被广泛的应用于生产环境中,如果网站原来使用的是Apache,那如何快速的将Nginx作为前端代理服务器来提供服务呢?

使用一个非常简单的配置文件配置即可。这里摒弃复杂的切换,和生产环境中要考虑的其他诸多因素,单纯简单讲解实现方法。

找到Nginx配置文件,一般位于/usr/local/nginx/conf中,名字为nginx.conf,为了测试,先不改动Apache的任何配置,将Nginx服务在81端口。

找到server配置,修改为以下配置,其中的website.com是网站的域名

server {
        listen       81;
        server_name  website.com;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            proxy_pass http://website.com;
            #root   html;
            #index  index.html index.htm;
        }

为了安全,我们可以先测试一下配置文件是否有语法错误

执行下面的命令测试语法是否正确

sudo /usr/local/nginx/sbin/nginx -t

如果正确将会显示类似下面的内容

nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

为什么一定要测试配置文件是否正确呢?

1.Nginx配置文件的每一行后面都有一个分号,许多初次使用者会忘记添加分号,此时可能会出现一些莫名其妙的错误,比如提示缺少括号 }
2.Nginx运行时配置文件错误的载入可能会导致进程不受控制,即使使用stop命令都无法停止进程,所以一定要先测试配置文件是否正确
(ps:如果真的不受控制了,那只好强制杀死进程了,可以使用这条命令杀死进程 sudo killall nginx )

配置文件测试正确之后,reload配置文件即可使配置生效

sudo  /etc/init.d/nginx reload

配置文件已经成功载入
打开浏览器,输入上面配置的网站的域名(原来网站的域名)+端口号81,例如配置文件中给出的website.com,可以使用http://website.com:81来访问,这样之后就将Nginx设置为前端代理服务器了。
如果是Chrome浏览器,可以打开控制台,找到Network,查看加载的第一个文件的Response Header是否已经是Nginx
这里是我的截图,可以看到Server行已经变成Nginx

nginx-proxy