一:系统
Ubuntu16.04-server版本
配置国内仓库源:
mv /etc/apt/sources.list /etc/apt/sources.list.bak
vim /etc/apt/sources.list
更换为如下内容
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
然后执行命令:
apt-get update
apt-get upgrade
二:基础软件
A:ssh
用途:ssh登录
apt-get install openssh-server
解决root不能ssh登录问题:
修改/etc/ssh/sshd_config文件中的PermitRootLogin without-password
改为PermitRootLogin yes
B:samba
用途:Linux共享文件夹给windows开发环境用
1.终端输入:
sudo apt-get install samba samba-common
2.修改配置文件
sudo vim /etc/samba/smb.conf
在文尾添加:
[share]
path = /home/share
writable = yes
valid users = root
create mask = 0644
force create mode = 0644
directory mask = 0755
force directory mode = 0755
available = yes
3.设置root用户的smb服务访问密码,输入命令:
sudo smbpasswd -a root
输入密码。
4.重启samba服务
sudo service smbd restart
5.Windows下访问
快捷键:Win+R
输入:\IP地址 示例:\192.168.1.118
6.输入用户名root和密码
C:安装GCC/G++/VIM基础软件
三:安装nginx,搭建web服务器
nginx官网 http://www.nginx.org
1.安装前提
a)epoll,linux 内核版本为2.6或者以上;
b)gcc编译器,g++编译器
c)pcre库:函数库;支持解析正则表达式;
d)zlib库:压缩解压缩功能
e)openssl库:ssl功能相关库,用于网站加密通讯
安装依赖包
apt-get install gcc
apt-get install libpcre3 libpcre3-dev
apt-get install zlib1g zlib1g-dev
# Ubuntu14.04的仓库中没有发现openssl-dev,由下面openssl和libssl-dev替代
#apt-get install openssl openssl-dev
sudo apt-get install openssl
sudo apt-get install libssl-dev
2.下载nginx
cd /home/share/
mkdir nginx
cd nginx
wget http://nginx.org/download/nginx-1.16.1.tar.gz
tar -xvf nginx-1.16.1.tar.gz
3.nginx包的目录简介
auto / :编译相关的脚本,可执行文件configure一会会用到这些脚本
cc / : 检查编译器的脚本
lib / : 检查依赖库的脚本
os / : 检查操作系统类型的脚本
type / : 检查平台类型的脚本
CHANGES : 修复的bug,新增加的功能说明
CHANGES.ru : 俄语版CHANGES
conf / : 默认的配置文件
configure : 编译nginx之前必须先执行本脚本以生成一些必要的中间文件
contrib / : 脚本和工具,典型的是vim高亮工具
vim / : vim高亮工具
html / : 欢迎界面和错误界面相关的html文件
man / : nginx帮助文件目录
src / : nginx源码目录
core : 核心代码
event : event(事件)模块相关代码
http : http(web服务)模块相关代码
mail : 邮件模块相关代码
os : 操作系统相关代码
stream : 流处理相关代码
objs/:执行了configure生成的中间文件目录
ngx_modules.c:内容决定了我们一会编译nginx的时候有哪些模块会被编译到nginx里边来。
Makefile:执行了configure脚本产生的编译规则文件,执行make命令时用到
4.nginx的编译和安装
# 进入nginx目录
/home/share/nginx-1.16.1
# 执行命令
./configure
--prefix:指定最终安装到的目录:默认值 /usr/local/nginx
--sbin-path:用来指定可执行文件目录:默认的是sbin/nginx
--conf-path:用来指定配置文件目录:默认的是conf/nginx.conf
# 执行make命令
make
# 执行make install命令
make install
5.查看nginx是否安装成功
#启动nginx
cd /usr/local/nginx/sbin
./nginx
如果默认端口80已被占用,可修改配置文件更改:
vim /usr/local/nginx/conf/nginx.conf
#将listen 80 修改为listen 8000
四:nginx简介
nginx运行起来后查看进程,发现有两个进程master进程和worker进程;
worker进程是被master进程通过fork()创建出来的,worker进程是master进程的子进程,master是父进程;
root@epc:/usr/local/nginx/sbin# ps -ef|grep ./nginx
root 3437 1 0 06:25 ? 00:00:00 nginx: master process ./nginx
root 3458 1831 0 06:33 pts/0 00:00:00 grep --color=auto ./nginx
root@epc:/usr/local/nginx/sbin#
4.1nginx进程模型简介
nginx进程是由1个master进程和1到多个worker进程 组成;worker进程数量是由CPU的内核数决定,他们的分工主要如下:
a)master负责监控进程,不处理具体业务,专门用来管理和监控worker进程;
b)worker进程:处理具体业务;
c)master进程和worker进程之间要通讯,可以用 信号 ,也可以用 共享内存 ;
d)master和worker的关联:worker进程发生异常,master进程会立即通过fork()产生新的worker进程;worker由于它的角色定位,决定了它是非常稳定的,这种工作机制保证了 nginx能够非常稳定、灵活的运行。
4.2nginx的灵活特性
a)nginx支持重载配置文件
b)nginx热升级,热回滚