nginx是一个很好的反向代理服务器,这几天在部署服务器的时候也遇到了相关的问题,这里来简单说一下nginx的相关安装和配置问题,以及其中的含义。
安装
- 首先需要安装一些依赖,这里可以使用 下面代码来安装C++的依赖。
-yum install -y gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl–devel - 其次需要把已经安装过的nginx相关东西清除干净。可以通过find / -name nginx将所有带有nginx的路径显示出来,然后使用
rm -rf 文件名 删除即可。 - 接着我们要获取安装包,这里可以通过 下面命令直接获取压缩包,然后解压缩,并进入文件夹中
wget http://nginx.org/download/nginx-1.10.3.tar.gz
tar -zxvf nginx-1.10.3.tar.gz
cd nginx-1.10.3/
- 然后选择安装目录,进行安装,其中prefix中就是安装目录。
./configure --prefix=/usr/local/nginx
make
make install
- 通过设置一些配置可以更方便的执行使用下面命令添加新的配置文件,添加内容如下。
vi /usr/lib/systemd/system/nginx.service
[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid ##这里是nginx.conf需要的 pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
- 可以通过下面命令来控制nginx
启动nginx
systemctl start nginx.service
关闭nginx
systemctl stop nginx.service
重启nginx
systemctl restart nginx.service
配置
我们可以通过查找文件的方式来找到nginx.conf的路径。
find / -name nginx.conf
下面来分析一下我自己的一个nginx配置。
user www-data;
worker_processes auto;#设置nginx进程运行的进程数目,一般可以通过CPU的核数来确定。
pid /usr/local/nginx/logs/nginx.pid; #进程写入的位置,和启动时的配置是一样的。
events {
worker_connections 768;
# multi_accept on;
}
http {
##
# Basic Settings
##
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include ./mime.types; #加载一些用于处理不同类型文件信息的文件
default_type application/octet-stream;
access_log /var/log/nginx/access.log; #设置了访问的日志存储的位置
error_log /var/log/nginx/error.log; #用于设置输出错误信息的日志文件位置
##
# Gzip Settings
##
gzip on;
gzip_disable "msie6";
include /usr/local/nginx/conf/*.conf; #将这个目录下的其他所有的conf 文件加载进来
}
下面是一个虚拟机的配置
server {
listen 8000; #监听端口是8000端口
#这里还可以配置server_name ,如果不配置的话默认是服务器的ip地址可以访问
location /mindausa/ { #这里使用mindausa代表下面的服务器中具体的存储路径。
root /opt/usa/home/; #从root路径开始到要访问的路径
}
location /server/ {
proxy_pass http://localhost:9000/;
}
}
一些问题
- 防火墙和相关端口
CentOs中有关防火墙是要打开的,同时要设置那些nginx中配置的相关端口为打开状态。
开始若防火墙没有打开则需要打开防火墙,并且查看相关端口是否已经开放,若没有开放则添加防火墙端口,然后重启防火墙即可。最后在查看一下防火墙打开的端口都有哪些。
启动防火墙
systemctl start firewalld
开机启动防火墙
systemctl enable firewalld
查看所有打开的端口
firewall-cmd --list-ports
添加防火墙端口 以80为例
firewall-cmd --zone=public --add-port=80/tcp --permanent
重新启动防火墙
firewall-cmd --reload
- 端口是否可用
首先要看网络是否联通,这里可以使用ping ip地址来实现,如果可以ping通,再去看看端口。
有时候端口打开了未必外界确实可以访问到,这里我们可以通过telnet命令来尝试访问。如果进入黑窗口,则说明端口是可以访问的。
ping 10.240.xxx.xx
telnet 10.240.xxx.xx 6379 #以6379端口为例