前言:

自从知道有nginx这个东西之后,一直都没有去做过多的了解,只是粗浅的知道能够代理域名、放置静态资源以便分担服务器压力这样的东西,连正向代理和反向代理的定义都不知道.

一、正向代理与反向代理

正向代理位于原始服务器和客户机之间,他的作用是代替客户机发请求,例如用于保护客户机,VPN技术.

反向代理则是在服务器端进行的代理操作,常见的有改变域名和请求分发.

改变域名其实就是为了外界访问,比方说www.baidu.com,如果通过最原始的IP进行访问,谁记得住这个IP是百度,那个IP是CSDN呢?

请求方法是当数据量变大的时候才会用到的,请看下面这个图:

nginx服务修改服务地址 nginx修改域名_html


nginx在接受到客户端的请求后,将请求分发到各个服务器上,以此达到减轻服务器压力的作用.

当然了,请求分发就意味着很多很多的问题,我们用一台服务器的时候,可以用session来检测用户的登录状态,但是服务器与服务器之间不共享session等这里就不一一列举了.

二、搭建一个基本的nginx,实现域名的改变(windows系统)

1.去官网上下载nginx:http://nginx.org/en/download.html

nginx服务修改服务地址 nginx修改域名_nginx_02


Mainline version: Mainline 是 Nginx 目前主力在做的版本,可以说是开发版(Youtube看官网视频 推荐开发者使用这个版本)

Stable version: 最新稳定版,生产环境上建议使用的版本

Legacy versions:遗留的老版本的稳定版

Source Code: 源码

Pre-Build Packages: 预编译版本

我下的是Mainline版本.下载完成解压.直接点.exe文件不太好使,还是用cmd敲命令行管事.

2.启动nginx服务器

先分享一下nginx常用的命令:

查看Nginx的版本号:nginx -V

启动Nginx:start nginx

快速停止或关闭Nginx:nginx -s stop

正常停止或关闭Nginx:nginx -s quit

配置文件修改重装载命令:nginx -s reload

好的,我们打开解压后的文件夹,按住shift的同时鼠标右键点击,打开powershell(windows10,其实cmd就可以,我只是省去了cd命令).输入完start nginx,弹了个黑框框,一眨眼的功夫就没了,当然如果你电脑够快可能自己都没注意到…

然后打开浏览器输localhost,应该就能看到跟nginx相关的网页了.

nginx服务修改服务地址 nginx修改域名_html_03


接下来我就准备着手改变域名了,用notepad++打开conf文件夹下的nginx.conf,该文件中具体每一项的意思具体请点击链接:

修改conf文件

server {
        listen       80;
        server_name  www.gaimeng.com;
 
        #charset koi8-r;
 
        #access_log  logs/host.access.log  main;
 
        location / {
            root   html;
            index  index.html index.htm;
			proxy_pass http://www.gaimeng.com:8080;
        }
 
        #error_page  404              /404.html;
 
        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
 
        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}
 
        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}
 
        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }

监听的是80端口,服务器用的是8080端口,然后重启: nginx -s -reload,结果发现报错了,说是没有找到.pid文件,其实是因为我的nginx没有启动,如果启动的话会自动创建这个文件.那么为什么没有启动呢,我这是因为80端口被其他程序占用了.在命令框里敲:netstat -aon | findstr :80 ,找到占用的进程后用任务管理器根据pid把它结束就可以了.

nginx服务修改服务地址 nginx修改域名_服务器_04


好的,现在重启却报了另一个错误,大概意思是找不到这个域名.这个时候只要去改windows自己的hosts文件就好了,hosts类似于预解析域名,查一下就知道了.hosts位置在 :

nginx服务修改服务地址 nginx修改域名_nginx服务修改服务地址_05

修改hosts文件

nginx服务修改服务地址 nginx修改域名_html_06


OK,现在重启nginx,在浏览器地址栏输入你设置的域名,就发现成功啦.

nginx服务修改服务地址 nginx修改域名_html_07