Nginx安装并配置反向代理

Nginx安装

rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
yum install nginx -y

1.将nginx放到yum repro库中

[root@localhost ~]# rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

2.查看nginx信息

[root@localhost ~]# yum info nginx

3.使用yum安装ngnix

[root@localhost ~]# yum install nginx
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.usc.edu
 * extras: mirror.raystedman.net
 * updates: mirror.metrocast.net
正在解决依赖关系
--> 正在检查事务
---> 软件包 nginx.x86_64.1.1.10.1-1.el7.ngx 将被 安装
      ······
      ······
正在安装    : 1:nginx-1.10.1-1.el7.ngx.x86_64        
Thanks for using nginx!
Please find the official documentation for nginx here:
* http://nginx.org/en/docs/

Commercial subscriptions for nginx are available on:
* http://nginx.com/products/

----------------------------------------------------------------------
  验证中      : 1:nginx-1.10.1-1.el7.ngx.x86_64                                                                                 1/1 

已安装:
  nginx.x86_64 1:1.10.1-1.el7.ngx                                                                                     
完毕!

4.启动nginx

[root@localhost ~]# service nginx start

5.查看nginx版本

[root@localhost ~]# nginx -v

6.访问nginx,现在你可以通过公网ip (本地可以通过 localhost /或 127.0.0.1 ) 查看nginx 服务返回的信息。

[root@localhost ~]# curl -i localhost
效果如下:

Welcome to nginx!。

7.nginx配置文件位置在/etc/nginx/

[root@localhost /]# ll /etc/nginx/
总用量 32
drwxr-xr-x. 2 root root   25 10月 12 13:11 conf.d
-rw-r--r--. 1 root root 1007 5月  31 22:09 fastcgi_params
-rw-r--r--. 1 root root 2837 5月  31 22:09 koi-utf
-rw-r--r--. 1 root root 2223 5月  31 22:09 koi-win
-rw-r--r--. 1 root root 3957 5月  31 22:09 mime.types
lrwxrwxrwx. 1 root root   29 10月 12 13:11 modules -> ../../usr/lib64/nginx/modules
-rw-r--r--. 1 root root  643 5月  31 22:08 nginx.conf
-rw-r--r--. 1 root root  636 5月  31 22:09 scgi_params
-rw-r--r--. 1 root root  664 5月  31 22:09 uwsgi_params
-rw-r--r--. 1 root root 3610 5月  31 22:09 win-utf

8.实践:

目的:修改服务名,接着从外部访问这个服务
操作:
– a.修改nginx配置文件
[root@localhost nginx]# vim /etc/nginx/conf.d/default.conf
修改server_name部分:server_name yytest.com;

  • b.重载服务
    [root@localhost nginx]# /usr/sbin/nginx -s reload

  • c.从外部访问nginx服务(192.168.10.11)
    如在客户机(192.168.10.10)的浏览器访问:http://yytest.com

  • d.你发现访问不了,原因1,你没有在hosts文件做映射;原因2,及时你在hosts文件中了映射,由于nginx服务器的80端口堵塞或防火墙没关

  • e.解决办法:

    步骤一:修改客户机(192.168.10.10)的hosts文件,使用SwitchHosts工具添加 192.168.10.11 yytest.com

    步骤二:关闭防火墙,具体下文有说明

9.nginx常用操作

  • 启动:
    $ /usr/sbin/nginx或任意路径下运行service nginx start(centos7是systemctl start nginx.service )

  • 重启:
    $ /usr/sbin/nginx –s reload

  • 停止:
    $ /usr/sbin/nginx –s stop

  • 测试配置文件是否正常:
    $ /usr/sbin/nginx –t

Nginx配置

#配置负载均衡池
#Demo1负载均衡池
upstream book_pool{
    server 127.0.0.1:8001;
}
#Demo2负载均衡池
upstream movie_pool{
    server 127.0.0.1:8002;
}

#Demo1端口转发
server {
    listen       80;
    server_name  book.chanshuyi.com;
    access_log logs/book.log;
    error_log logs/book.error;

    #将所有请求转发给demo_pool池的应用处理
    location / {
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://book_pool;
    }
}
#Demo2端口转发
server {
    listen       80;
    server_name  movie.chanshuyi.com;
    access_log logs/movie.log;
    error_log logs/movie.error    
    #将所有请求转发给demo_pool池的应用处理
    location / {
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://movie_pool;
    }
}

iptables配置

关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service


当然也可以iptables进行转发:(80转到8080处理)

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3000
赞(2)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址