导语:作为一个以服务器为主要市场的操作系统,主要就是对客户端的请求进行响应,进行处理的。在经历过系统镜像安装和本地配置好ssh功能后,接下来进行服务器的安装,这里我以nginx为主,介绍一下如何安装nginx和配置站点,
# 安装要求
- linux centos7系统
- ssh软件
# nginx简介
nginx作者是伊戈尔·赛索耶夫,最初是为一个俄罗斯访问量第二大的网站开发的服务器。
nginx主要是有以下几个功能:
- 免费开源的服务器
- 轻量级的服务器,安装包只有几百KB
- 高性能的web服务器
- 反向代理服务器
- 负载均衡
- 电子邮件代理服务器
nginx国内大陆的网站用户有腾讯、百度、淘宝、网易、京东和新浪等。
# nginx安装
# 编译安装
# 下载安装
wget http://nginx.org/download/nginx-1.16.1.tar.gz
yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
tar -zxvf nginx-1.16.1.tar.gz
cd nginx-1.16.1
./configure --prefix=/usr/local/nginx
make && make install
ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/nginx
2
3
4
5
6
7
# 操作
# start
nginx
# stop
nginx -s quit
nginx -s stop
# look process
nginx -s quit
2
3
4
5
6
7
# 配置服务
vi /etc/systemd/system/nginx.service
[Unit]
Description=nginx
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=oneshot
ExecStart=/usr/local/nginx/sbin/nginx
ExecStop=/usr/local/nginx/sbin/nginx -s stop
ExecReload=/bin/kill -s HUP $MAINPID
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
2
3
4
5
6
7
8
9
10
11
12
13
# 启动命令
- 启动
systemctl start nginx
- 停止
systemctl stop nginx
- 状态
systemctl status nginx
- 打开开机自启
systemctl enable nginx
- 关闭开机自启
systemctl disable nginx
# 安装包安装
- 添加安装包
sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
- 安装软件包
yum install -y nginx
# nginx程序启动
你可以执行nginx -v
查看版本。
系统启动并且设置为开机自启动。
systemctl start nginx
systemctl enable nginx
2
由于nginx默认是80端口,所以你需要开放80端口。
firewall-cmd --add-port=80/tcp --permanent
firewall-cmd --reload
2
# 增加hosts记录
打开系统hosts文件,这里就以www.example.com
为例。
如果你不清楚自己的系统ip是多少,可以运行下面这个命令安装服务包。
yum install -y net-tools
ifconfig
2
就会看到自己的ip地址了。
首先我们进入hosts文件,
vi /etc/hosts
然后按一下键盘上的Insert, 输入内容
127.0.0.1 www.example.com
;最后按住键盘上的
Esc
,输入:wq
或者:x
保存并且退出。
到游览器地址栏输入刚刚保存的网址,就可以看到一下内容。
# 配置一个站点
nginx的全局配置文件vi /etc/nginx/nginx.conf
接下来我会配置一个简单的静态站点作为示例。
- 创建一个文件夹用来存放站点文件。
mkdir /var/www/sites
- 新建一个网页
vi /var/www/sites/index.html
- 然后依照上面的文件编辑保存步骤输入内容并且保存。
这是我的网站首页内容。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>示例站点</title>
</head>
<body>
<h2>Hello,World!</h2>
<p>Welcome to visted my web site!</p>
</body>
</html>
2
3
4
5
6
7
8
9
10
11
- 添加配置文件夹和文件
进入nginx的目录下,创建一个文件夹和文件。
进入nginx.conf
文件,在http属性下面加一个include /etc/nginx/vhost/*.conf;
。
mkdir /etc/nginx/vhost
vi /etc/nginx/vhost/example.com.conf
2
输入以下内容并且保存。
server {
listen 80; # 监听的端口,这里是80端口
server_name www.example.com example.com; # 这里是地址栏要访问的域名,可以写多个
access_log /var/www/sites/access.log; # 访问成功日志文件
error_log /var/www/sites/error.log; # 访问错误日志文件
location / {
root /var/www/sites; # 站点目录
index index.html index.htm; # 站点首页文件名称
}
error_page 500 502 503 504 /50x.html; #错误页面
location = /50x.html {
root /usr/share/nginx/html;
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
- 配置完了以后重载重启nginx。
systemctl reload nginx
systemctl restart nginx
2
【技巧】这里有一个小技巧,可以检测你写的nginx配置站点文件语法是否正确,可以帮助你减少不必要的烦恼。
# 检查全部配置文件
nginx -t
# 检查单个配置文件
nginx -t -c /etc/nginx/nginx.conf
2
3
4
如果结果没有报错,说明是你写的语法没有问题,反之则要根据错误提示,找到对应的配置文件,更改内容。 在本地hosts文件增加解析记录,这里的ip就是你远程服务器的ip地址了。
192.168.1.123 www.example.com
192.168.1.123 example.com
2
- 预览
打开游览器,输入www.example.com
或者example.com
就可以看到之前编辑的站点首页内容了。
# 优化技巧
# 隐藏版本号
http,server,location都可以加
vi /etc/nginx/ngninx.conf
server_tokens off;
# 配置多个域名
server {
listen 80;
server_name app.dev a.dev b.dev;
}
2
3
4
# 配置多个站点
server {
listen 80;
server_name a.app.dev;
location / {
root /usr/local/app;
index index.html index.htm;
}
}
server {
listen 80;
server_name b.app.dev;
location / {
root /usr/local/b;
index index.html index.htm;
}
}
server {
listen 80;
server_name c.app.dev;
location / {
root /usr/local/c;
index index.html index.htm;
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 禁用ip访问
server {
listen 80 default;
server_name _;
return 404;
}
2
3
4
5
或者
server {
listen 80 default;
server_name _;
rewrite ^/(.*)$ https://blog.dev/$1 permanent;
}
2
3
4
5
# 返回验证文件
location = /deijdw12919msjd.txt {
default_type text/plain;
return 200 'abd12535355abde35352';
}
2
3
4
# 配置反向代理
upstream testSite {
server 192.168.0.1 weight=1;
server 192.168.0.2 weight=1;
}
server {
location /blog/ {
proxy_pass http://testSite;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
# 开启keepalive
upstream tomcat {
server a.dev:8080;
keepalive 1024;
}
2
3
4
# 自动跳转
location / {
error_page 404 = @404page;
}
location @404page {
rewrite .* / permanent;
}
2
3
4
5
6
7
# 写在最后
今天只是初步探究nginx的用法,其他的功能下次补充完善。