nginx学习笔记

一.安装 Nginx

1. nginx 安装环境

nginx 是 C 语言开发,建议在 linux 上运行

yum install gcc-c++

yum install -y pcre pcre-devel

yum install -y zlib zlib-devel

yum install -y openssl openssl-devel

2.将 Nginx 安装包上传到 Linux 中

3.解压安装包:

tar -zxvf nginx-1.8.1.tar.gz

4.编译安装

进入到 nginx 的根目录:cd nginx-1.8.0

配置安装参数: ./configure --prefix=/usr/local/nginx

编译:make

编译安装 make install

5.nginx的启动和关闭

启动:./nginx

关闭:./nginx -s quit

重启:./nginx -s reload

6.测试

安装成功后,启动nginx,在浏览器上直接输入ip即可。(nginx默认监听的是80端口)

注意:记得关闭防火墙

配置虚拟主机

需求

一台 Linux 服务器绑定两个 ip:192.168.70.144、192.168.70.188

访问不同的 ip 请求不同的 html 目录,即:

访问 http://192.168.70.144 将访问“html144”目录下的 html 网页

访问 http://192.168.70.188 将访问“html188”目录下的 html 网页

二.Nginx的虚拟主机配置方式

Nginx 支持三种类型的虚拟主机配置

基于 IP 的虚拟主机

基于端口的虚拟主机

基于域名的虚拟主机

1.1基于 IP 的虚拟主机

  1. 将动态 IP 修改为静态 IP

--cd /etc/sysconfig/network-scripts

--vim ifcfg-eth0

IPADDR=192.168.10.144

NETMASK=255.255.255.0

GATEWAY=192.168.10.2

DNS1=114.114.114.114

2)将/etc/sysconfig/network-scripts/ifcfg-eth0 文件复制一份,命名为

ifcfg-eth0:1;

--cp -rf ifcfg-eth0 ifcfg-eth0:1

修改复制后的ifcfg-eth0:1

--vim ifcfg-eht0:1

修改其中内容:

DEVICE=eth0:1

IPADDR=192.168.70.188

其他项不用修改

重启网络

--service network restart

3)修改 Nginx 的配置文件nginx.conf完成基于 IP 的虚拟主机配置

Nginx.conf

user root; (此处需要修改,分配权限)
worker_processes 1;
events {
 worker_connections 1024;
}
http {
 include mime.types;
 default_type application/octet-stream;
 sendfile on;
 keepalive_timeout 65;
 #一个 Server 就是一个虚拟主机
 server {
 listen 80;
#为虚拟机指定 IP 或者是域名
 server_name 192.168.70.144;
#主要配置路由访问信息
 location / {
 #用于指定访问根目录时,访问虚拟主机的 web 目录
 root html144;
 #在不指定访问具体资源时,默认的展示资源的列表
 index index.html index.htm;
 }
 error_page 500 502 503 504 /50x.html;
 location = /50x.html {
 root html;
 }
 }
 #一个 Server 就是一个虚拟主机
 server {
 listen 80;
#为虚拟机指定 IP 或者是域名
 server_name 192.168.70.188;
#主要配置路由访问信息
 location / {
 #用于指定访问根目录时,访问虚拟主机的 web 目录
 root html188;
 #在不指定访问具体资源时,默认的展示资源的列表
 index index.html index.htm;
 }
 error_page 500 502 503 504 /50x.html;
 location = /50x.html {
 root html;
 }
 }
}
  1. 重启nginx

1.2基于端口的虚拟主机

1)需求

Nginx 对提供 8080 与 9090 两个端口的监听服务

请求 8080 端口则访问 html8080 目录下的 index.html

请求 9090 端口则访问 html9090 目录下的 index.html

修改 Nginx 的配置文件完成基于端口的虚拟主机配置

#一个 Server 就是一个虚拟主机 基于端口
 server {
 listen 8080;
 server_name 192.168.70.188;
#主要配置路由访问信息
 location / {
 #用于指定访问根目录时,访问虚拟主机的 web 目录
 root html8080;
 #在不指定访问具体资源时,默认的展示资源的列表
 index index.html index.htm;
 }
 
 error_page 500 502 503 504 /50x.html;
 location = /50x.html {
 root html;
 }
 }
 #一个 Server 就是一个虚拟主机
 server {
 listen 9090;
#为虚拟机指定 IP 或者是域名
 server_name 192.168.70.188;
#主要配置路由访问信息
 location / {
 #用于指定访问根目录时,访问虚拟主机的 web 目录
 root html9090;
 #在不指定访问具体资源时,默认的展示资源的列表
 index index.html index.htm;
 }
 
 error_page 500 502 503 504 /50x.html;
 location = /50x.html {
 root html;
 }
 }
}

2)重启nginx

1.3基于域名的虚拟主机

1)需求

两个域名指向同一个 nginx 服务器,用户访问不同的域名时显示不同的内容。

域名规划:

1, http://www.bjsxt.com

2, www.itbaizhan.cn

2)修改 windows 的 hosts 文件配置域名与 ip 的映射

文件路径:C:\Windows\System32\drivers\etc

修改 Nginx 的配置文件完成基于域名的虚拟主机配置

nginx.conf

server {
 listen 80;
#为虚拟机指定 IP 或者是域名
 server_name www.bjsxt.com;
#主要配置路由访问信息
 location / {
 #用于指定访问根目录时,访问虚拟主机的 web 目录
 root html-bjsxt;
 #在不指定访问具体资源时,默认的展示资源的列表
 index index.html index.htm;
 }
 
 error_page 500 502 503 504 /50x.html;
 location = /50x.html {
 root html;
 }
 }
 #一个 Server 就是一个虚拟主机
 server {
 listen 80;
#为虚拟机指定 IP 或者是域名
 server_name www.itbaizhan.cn;
#主要配置路由访问信息
 location / {
 #用于指定访问根目录时,访问虚拟主机的 web 目录
 root html-itbaizhan;
 #在不指定访问具体资源时,默认的展示资源的列表
 index index.html index.htm;
 }
 
 error_page 500 502 503 504 /50x.html;
 location = /50x.html {
 root html;
 }
 }

三、Nginx 中配置服务的反向代理

1需求

安装两个 tomcat 服务,通过 nginx 反向代理。

本案例中使用两台虚拟机演示。

tomcat 安装到 192.168.70.143 环境中。端口为 8080 与 9090

Nginx 安装在 192.168.70.144 环境中

2.反向代理实现

  1. 安装 2个tomcat
  2. 修改其中一台的端口号

vim server.xml(3个都加10)

  1. 修改tomcat首页进行区分 index.jsp
  2. 配置nginx的nginx.conf来实现服务的反向代理

修改:nginx.conf

user root;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
 worker_connections 1024;
}
http {
 include mime.types;
 default_type application/octet-stream;
 sendfile on;
 keepalive_timeout 65;
 
 upstream tomcat_server1{
server 192.168.70.143:8080;
 }
 
 upstream tomcat_server2{
server 192.168.70.143:9090;
 }
 
 server {
 listen 80;
#为虚拟机指定 IP 或者是域名
 server_name test.bjsxt.com;
#主要配置路由访问信息
 location / {
 #用于指定访问根目录时,访问虚拟主机的 web 目录
 proxy_pass http://tomcat_server1;
 #在不指定访问具体资源时,默认的展示资源的列表
 index index.html index.htm;
 }
 
 error_page 500 502 503 504 /50x.html;
 location = /50x.html {
 root html;
 }
 }
 #一个 Server 就是一个虚拟主机
 server {
 listen 80;
#为虚拟机指定 IP 或者是域名
 server_name test.itbaizhan.cn;
#主要配置路由访问信息
 location / {
 #用于指定访问根目录时,访问虚拟主机的 web 目录
 proxy_pass http://tomcat_server2;
 #在不指定访问具体资源时,默认的展示资源的列表
 index index.html index.htm;
 }
 
 error_page 500 502 503 504 /50x.html;
 location = /50x.html {
 root html;
 }
 }
}

测试结果:http://test.bjsxt.com 跳转到 ;server 192.168.70.143:8080;(tomcat1)

http://test.itbaizhan.cn 跳转到:server 192.168.70.143:9090;(tomcat2)

四、在反向代理中配置负载均衡

1.Nginx 负载均衡策略

1)轮询(默认)

每个请求按时间顺序逐一分配到不同的后端服务器,如果后

端服务器 down 掉,能自动剔除。

2)指定权重

指定轮询几率,weight 和访问比率成正比,用于后端服务器

性能不均的情况。

upstream backserver {

server 192.168.0.14 weight=10;

server 192.168.0.15 weight=10;

}

3)IP 绑定 ip_hash

每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访

问一个后端服务器,可以解决 session 的问题。

upstream backserver {

ip_hash;

server 192.168.0.14:88;

server 192.168.0.15:80;

}

七、http 协议代理

由于 ftp 服务器是基于 ftp 协议处理的。么现在我想在外部访问该图片,是没有办法

访问的。他是不能处理 http 协议的。所以我们需要拥有一个能够处理 http 协议代理服务器。

其实就是使用了 Nginx 的虚拟主机的方式。

1、需求

使用 Nginx 的基于域名的虚拟主机的方式来完成在 KindEditor 中添加图片时的图片回

显处理。

nginx:192.168.70.144

VSFTPD:192.168.70.144

注意:nginx 与 VSFTPD 必须安装到同一个环境中。

2解决 KindEditorDemo 项目中图片回显的问题

2.1修改系统的 hosts 文件

2.2修改项目的 resource.properties 文件

FTP_HOST=192.168.70.144

FTP_PORT=21

FTP_USERNAME=ftpuser

FTP_PASSWORD=ftpuser

FTP_BASEPATH=/home/ftpuser/

HTTP_BASE_PATH=http://img.bjsxt.com

2.3修改 nginx.conf

user root;
worker_processes 1;
events {
 worker_connections 1024;
}
http {
 include mime.types;
 default_type application/octet-stream;
 sendfile on;
 keepalive_timeout 65;
 
 server {
 listen 80;
#为虚拟机指定 IP 或者是域名
 server_name img.bjsxt.com;
#主要配置路由访问信息
 location / {
 #用于指定访问根目录时,访问虚拟主机的 web 目录
 root /home/ftpuser/;
 #在不指定访问具体资源时,默认的展示资源的列表
 index index.html index.htm;
 }
 
 error_page 500 502 503 504 /50x.html;
 location = /50x.html {
 root html;
 }
 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值