在Redhat7上安装nginx并配置虚拟主机
安装
# yum install nginx
# nginx -v
nginx version: nginx/1.10.2
设置虚拟主机
只需要一种选项来将以下内容以中文原生方式进行改写:作为今后的规定。
-
- バーチャルホストの設定ファイルは、/etc/nginx/conf.dに、[ドメインのFQDN].confの名前で運用する。
- バーチャルホストのドキュメントルートは、/var/www/vhosts/[ドメインのFQDN]とする。
根据上述规则,在/etc/nginx/conf.d目录下创建了一个名为example.com.conf的配置文件。
server {
listen 80 default;
server_name ec2-xx-xxx-xxx-xx.xx-xxxx-2.compute.amazonaws.com;
charset utf-8;
location / {
root /var/www/vhosts/example.com;
index index.html index.htm;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
location ~ /\.ht {
deny all;
}
}
未来,我将把此域名设为nginx的默认服务,并进行了默认设置。
在中文中,将句子「設定文件的语法检查」改写为:
設定檔案的語法檢查。
# nginx -t
nginx: [emerg] could not build server_names_hash, you should increase server_names_hash_bucket_size: 64
nginx: configuration file /etc/nginx/nginx.conf test failed
这里有一个问题。虚拟主机的server_name太长而引起了抱怨。因为我们临时直接使用了AWS的公共域名,所以确实很长。
因此,即使按照错误消息的指示,在nginx.conf的server_names_hash中设置了64,仍然会出现相同的错误。
因此,最终我修正了http指令的设置并进行了清除。
http {
server_names_hash_bucket_size 128;
确认。
# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
大功告成!
守护程序的启动设置和手动启动
# systemctl enable nginx.service
# systemctl start nginx.service