12.公网网站服务

lnmp服务部署

安装lnmp服务服务器

lnmp:linux+nginx+mysql+php

集成安装包安装,之后选择版本即可

wget -c http://soft.vpser.net/lnmp/lnmp1.6-full.tar.gz && tar zxf lnmp1.6-full.tar.gz && cd lnmp1.6-full && ./install.sh lnmp

一键安装包目录

# 网站主目录
/home/wwwroot
# 默认网站
/home/wwwroot/default
# 预安装phpmyadmin
[ip]/phpmyadmin

新建虚拟主机,并按照提示创建虚拟域名test123.com,此时在/home/wwwroot将出现创建的域名

lnmp vhost add

重启/停止/开启lnmp服务器

lnmp restart/stop/start

虚拟主机配置文件,如果修改了端口,那么重启后直接访问还是默认的主站,需要在域名后面添加修改后的端口

/usr/local/nginx/conf/vhost

nginx的配置文件

位置:/usr/local/nginx/conf
/usr/local/nginx/conf/nginx.conf   # nginx主配置文件
include vhost/*.conf   # 虚拟主机解析位置
/home/wwwlogs/access.log   # 网站日志位置
/home/wwwlogs/nginx_error.log   # 出错日志的位置
/usr/local/nginx/logs/nginx.pid   # nginx进程文件
/usr/local/nginx/logs/error.log   # 崩溃日志保存位置
/usr/local/nginx/conf/mime.types   # 文件拓展名解析,类似于content-type字段的文件头

查看nginx是否有问题

nginx -t

重启nginx服务器

nginx -s reload

php配置文件

位置:/usr/local/php/etc/php.ini
disable——functions   # 危险函数,不在前面加;则表示不可以使用

mysql配置文件

位置:/usr/local/mysql/my.cnf
/usr/local/mysql/bin   # mysql命令目录
/usr/local/mysql/data   # 创建数据库的数据保存位置

nginx模块和正向代理

nginx模块使用

基于IP访问的控制(nginx_http_access_module)

在/usr/local/nginx/conf/vhost 中下载test1.com.conf的nginx配置文件并在里面添加location,位置在 include enable-php.conf; 下面

include enable-php.conf;
location /{
				# 当网站在解析整个网站时的做法
						deny 192.168.157.129;   # 不允许此IP访问
						allow all;     # 允许其他所有IP访问
				}

每次配置后需要重启服务(仅重启nginx也可以)

lnmp restart

基于用户的访问控制(nginx_http_auth_basic_module)

安装工具,使得有用户名和密码才能访问网站

yum -y install httpd-tools
yum provides htpasswd

在之前的地方添加location

location /{
				auth_basic "closed site";    # 如果没有得到允许,网站关闭
				auth_basic_user_file /usr/local/nginx/conf/htpasswd;   # 以conf/htpasswd作为用户名字典
				}

进入/usr/local/nginx/conf目录下,,这时候使用htpasswd命令建立一个htpasswd的文件,用户名和密码为admin/12345

htpasswd -bc htpasswd admin 12345

正向代理

定义:当请求该网站的某个路径时,nginx服务器会把自己作为代理让你访问到某个地方

location /{
		proxy_pass http://www.baidu.com     
}

如果在nginx上将设置正向代理,将全站跳转到百度上,不会在左上角出现向前的箭头,跳转的站和自身就是一体

location /bd/{
		proxy_pass http://www.baidu.com/;    
}

访问test1.com/bd就会跳转到百度,相当于请求百度,也可以直接将百度的搜索参数挂上面

test1.com/bd/s?wd=123

此时请求www.test1.com/bd的时候跳转到百度会带上搜索关键词123

设置正向代理后,请求www.test1.com/bd的时候就是请求http://www.baidu.com;同理www.test1.com/bd/s?wd=关键词 等价于 https://www.baidu.com/s?wd=关键词

nginx负载均衡

nginx七层负载均衡(应用层)

/usr/local/nginx/conf/vhost/test1.com.conf文件开头添加负载服务器

upstream websers{   # upstream后面名字随便写
  server 192.168.1.10 weight=5;  # weight表示权重,权重越高越优先请求
  server 192.168.1.11;
}

include enable-php.conf; 下添加全局

include enable-php.conf;
location / {
				proxy_pass http://websers;   # 这里是开头upstream后面的名字   
}

nginx四层负载均衡(传输层)

四层负载均衡最好在主配置文件里面去做,文件位置在/usr/local/nginx/conf/nginx.conf

代码添加位置在文件的events和http之间添加,因为stream和http是同一个级别

stream{
  upstream sshers{
    server 192.168.1.153:22;
    server 192.168.1.192:22;
  }
  server{
    listen 192.168.1.153:2222;
    proxy_pass sshers;
  }
}

此时使用ssh远程连接连接到192.168.1.153的2222端口第一次连接到192.168.1.153:22(ser1),第二次连接就会连接到192.168.1.192:22(ser2)

nginx正向代理、反向代理、负载均衡概念

image

适用局域网连接Internet,局域网中的客户端要访问Internet,则需要通过代理服务器来访问,这种代理服务就称为正向代理

image

反向代理:客户端对代理是无感知的,因为客户端不需要任何配置就可以访问,我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器IP地址

反向代理服务器选择挂在它后面的哪一台具体服务器的行为称为负载均衡

区别:客户端自己用,就是正向代理;如果是在服务器用,用户无感知,就是反向代理。

posted @ 2022-08-11 17:01  icui4cu  阅读(115)  评论(0编辑  收藏  举报